eWam AppendObject 无法将对象附加到列表
eWam AppendObject fails to append object to the list
我 运行 通过网络服务进行人口普查,以创建包括自愿配偶保险在内的会员合同。 employee和employee coverage创建成功,但是在创建spouse person对象的时候,没有追加到通信列表中。
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
。是什么导致了这段代码的行为差异?
查找错误
首先搜索 WSM 错误跟踪。
在这种情况下,发现以下错误:
14/01/16 15:48:12 Process Id 4176 Thread Id 6440 Thread
Index 1 Minor error WLISTOF.CPP
aListReftosType.ListInsert is refused by the role:
aWFCorrespondenceVersionedByDate Add =0000:0000:2380:2F00 NSId = 0 Id
= 0 Version = 2147483647 Current Gold method:SLI_Actor._CreateListOfActorCorrespondences #3
问题就很清楚了,因为 aWFCorrespondenceVersionedByDate
的 aXXX_CorrespondenceVersionedByDate
child class 存在,但不是为配偶创建的。对 class 结构的进一步审查显示 class aSPLI_CreateOrUpdatePerson_In
没有任何 children classes 所以它不可能是一个缺失的覆盖/ child class 导致创建不正确的 object。
确保 XML 节点代表 class 结构
调试wInterface
生成的classes中的fillvarfromparam
和Deserialize
方法,最终找到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
移动到正确的标签解决了这个问题,允许创建和附加正确的通信列表。
我 运行 通过网络服务进行人口普查,以创建包括自愿配偶保险在内的会员合同。 employee和employee coverage创建成功,但是在创建spouse person对象的时候,没有追加到通信列表中。
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
。是什么导致了这段代码的行为差异?
查找错误
首先搜索 WSM 错误跟踪。 在这种情况下,发现以下错误:
14/01/16 15:48:12 Process Id 4176 Thread Id 6440 Thread Index 1 Minor error WLISTOF.CPP
aListReftosType.ListInsert is refused by the role: aWFCorrespondenceVersionedByDate Add =0000:0000:2380:2F00 NSId = 0 Id = 0 Version = 2147483647 Current Gold method:SLI_Actor._CreateListOfActorCorrespondences #3
问题就很清楚了,因为 aWFCorrespondenceVersionedByDate
的 aXXX_CorrespondenceVersionedByDate
child class 存在,但不是为配偶创建的。对 class 结构的进一步审查显示 class aSPLI_CreateOrUpdatePerson_In
没有任何 children classes 所以它不可能是一个缺失的覆盖/ child class 导致创建不正确的 object。
确保 XML 节点代表 class 结构
调试wInterface
生成的classes中的fillvarfromparam
和Deserialize
方法,最终找到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
移动到正确的标签解决了这个问题,允许创建和附加正确的通信列表。