私が持っている機能で奇妙な動作に遭遇しましたが、何が起こっているのか説明できません。私はそれを当惑している同僚に見せました。
ここに私の質問に含まれている私のコードで。
- デバッグ行 "Value=" の後、for ループが正しく壊れ、デバッグ行 "Completed Value=" が実行され、その後に関数 "updateBookingRecordWithConfirmationResponse" が続き、デバッグ行 "After updatefunctionCalled" が続きます。これまでのところ、すべて正しいです。次に何が起こっているのかは奇妙です。
- 関数 "updateBookingRecordWithConfirmationResponse" と同様に、デバッグ ステートメント "Completed Value=" が再び実行され、次にデバッグ行 "After updatefunctionCalled" が再び実行されます。これは二度と起こらないはずです。関数「walkThroughReservationNode」は再度呼び出されませんが、デバッグ ログと updateBookingRecordWithConfirmationResponse の呼び出しは実行されます。
ここで詳述されているコードから、私のコードのエラーがどこにあるのか、または for ループの後にプロセスが再度実行される原因となっている可能性があるものを誰かが確認できる場合は、これに関するヘルプをいただければ幸いです。
前もって感謝します。
private void walkThroughReservationNode(DOM.XmlNode envelope) {
System.debug('in walkThroughReservationNode');
ReservationConfirmationWrapper reservationConfirmationWrapper =
new reservationConfirmationWrapper();
for (DOM.XMLNode childNode : envelope.getChildElements()) {
system.debug('in for loop');
if (childNode.getName() == 'UniqueID') {
System.debug('uniqueIDNodeVal=' + childNode.getAttribute('ID', ''));
reservationConfirmationWrapper.bookingId = childNode.getAttribute('ID', '');
} else if (childNode.getName() == 'ReservationID') {
System.debug('Value=' + childNode.getAttribute('ID_Value', ''));
reservationConfirmationWrapper.confirmationNumber = childNode.getAttribute('ID_Value', '');
break;
} else if (childNode.getName() == 'Warning') {
System.debug('Warning Exists ' + childNode.getText());
reservationConfirmationWrapper.warningMessage = childNode.getText();
break;
} else {
system.debug('before new walkthrough');
walkThroughReservationNode(childNode);
}
}
System.debug('Completed Value=' + reservationConfirmationWrapper.confirmationNumber);
updateBookingRecordWithConfirmationResponse(reservationConfirmationWrapper);
System.debug('After updatefunctionCalled');
}