0

任意配偶者補償を含むメンバー契約を作成するために、Web サービスを介して国勢調査ロードを実行しています。従業員と従業員補償は正常に作成されますが、配偶者の個人オブジェクトが作成されているときに、通信が通信リストに追加されません。

eWam 6.0.0.36  wInterface 4.1.24.0

方法:CreateListOfActorCorrespondences

forEach curActorCorrespondence in ListOfCreatedCorrespondences using rank
   **thisActor.Correspondences.AppendObject(curActorCorrespondence)**
   if rank = DefaultCorrespondenceRank
      curActorCorrespondence.SetAsDefault
   endIf
endFor

従業員を作成するために同じメソッドが呼び出されますが、配偶者を作成するときに、curActorCorrespondence正常に作成された は に追加されませんthisActor.Correspondences。このコードの動作の違いの原因は何ですか?

4

1 に答える 1

0

エラーを探す

まず、WSM エラー トレースを検索します。この場合、次のエラーが見つかりました。

14/01/16 15:48:12 プロセス ID 4176 スレッド ID 6440 スレッド インデックス 1 マイナー エラー WLISTOF.CPP
aListReftosType.ListInsert はロールによって拒否されました: aWFCorrespondenceVersionedByDate Add =0000:0000:2380:2F00 NSId = 0 Id = 0 バージョン= 2147483647 現在のゴールド メソッド:SLI_Actor._CreateListOfActorCorrespondences #3

aXXX_CorrespondenceVersionedByDateの子クラスはaWFCorrespondenceVersionedByDate存在していましたが、配偶者用に作成されていなかったため、問題は明らかです。クラス構造をさらに見直したところ、クラスにaSPLI_CreateOrUpdatePerson_In子クラスがなかったため、オーバーライド/子クラスが欠落しているために誤ったオブジェクトが作成された可能性はありませんでした。

XML ノードがクラス構造を表していることを確認してください

によって生成されたクラスのデバッグfillvarfromparamおよびメソッドは、最終的に XML 構造の不整合の問題を見つけます。DeserializewInterface

この場合: 従業員タグの下:

<Correspondences xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Element xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:aXXX_Correspondance">

登録タグの下 (失敗が発生した場所):

          <Correspondences xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:aXXX_Correspondance">
            <Element xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

XML を修正または再調整する

を正しいタグに移動するxsi:type attributeと問題が修正され、正しい対応リストを作成して追加できるようになりました。

于 2016-01-18T18:26:58.503 に答える