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 添加 =0000:0000:2380:2F00 NSId = 0 Id = 0 版本= 2147483647 当前黄金方法:SLI_Actor._CreateListOfActorCorrespondences #3

那么问题就很清楚了,因为存在aXXX_CorrespondenceVersionedByDate子类aWFCorrespondenceVersionedByDate,但不是为配偶创建的。对类结构的进一步审查表明该类aSPLI_CreateOrUpdatePerson_In没有任何子类,因此它不可能是缺少覆盖/子类而导致创建不正确的对象。

确保 XML 节点代表类结构

调试fillvarfromparamDeserialize生成的类中的方法,wInterface最终找到XML结构不一致的问题。

在这种情况下: 在员工标签下:

<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 回答