销售订单新变更单二开单据体支持生效案例

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

销售订单新变更单二开单据体支持生效案例

    星空目前主推的销售订单变更方式就是新变更单,因为它可以支持审批流也支持二开单据体/子单据体的变更。如果存在自定义的单据体,必须要严格遵循相关规则才能实现变更,下面演示如何支持变更二开的单据体字段。首先扩展销售订单元数据,添加自定义页签,在页签添加分割容器,在分容器里左侧拖一个单据体,分割容器右侧再拖一个子单据体,配置右侧子单据体的父分录为左侧单据体,单据体和子单据体映射的表名分别为T_CST_TABLEONE ,T_CST_SUBTABLEONE,并且在单据体/子单据体中分别拖两个文本字段。如下图1-1所示:

图1-1


    其次扩展销售订单新变更单元数据,对于二开单据体和子单据体都额外追加一个隐藏的整数类型的字段,此字段用于记录要变更的原始销售订单上的二开单据体/子单据体具体行数据,此字段绑定实体属性必须命名为PKIDX,如下图1-2所示:

图1-2


    在销售订单新变更单元数据据中将二开的单据体,子单据的表名分别设置为T_CST_XTABLEONE ,T_CST_XSUBTABLEONE注意这里的表名和原始销售订单上的表名多了一个X,这一步是必须的,否则可能存在莫名变更生效后原始订单会多一行数据出来,或者说变更单保存后莫名多一行从未添加过的数据出来,如果扩展的元数据修改不了表名,可以在标准未扩展的那一层尝试修改表名,或者通过扩展元数据的XML视图中强制修改表名),单据体/子单据体表名修改如下图1-3所示:

图1-3


    下图1-3为销售订单订单新变更单未扩展的那一层强制修改了表名的XML示意图,红框中的内容也可以复制到扩展的那一层元数据中(其中的oid要根据实际情况替换)。

图1-3


    上面操作保存后,创建一张新的销售订单变更单,二开单据体中输入两行数据,每个单据体对应的子单据体中再输入两行测试数据,如下图2-1所示:

图2-1


    下图2-2为销售订单保存后在数据库中呈现的数据示意图,从中可以看到每个单据体都对应有两行子单据体数据:

图2-2


    审核上面销售订单后,点击变更按钮创建一个销售订单新变更单,在变更单中删除第一行单据体数据,修改第二行单据体数据和对应的子单据体数据,追加一行新的单据体数据并在对应的子单据体中输入相关测试数据,如下图2-3所示:

图2-3


    下图2-4为新变更单保存后在数据库中呈现的数据示意图,从中可以看到第二行单据体数据已经修改过名称,对应的子单据体数据的第二行也修改过(原始销售订单上的第一行单据体数据在变更单上是删除了的),并且追加一行新的单据体和子单据体数据(FPKIDX为0的就是新加的)

图2-4


    保存,提交,审核,生效销售订单新变更单后数据会自动同步到原始销售订单,下图2-5和图2-6分别为新变更单生效后销售订单在星空系统和数据库中的示意图:

图2-5


图2-6


    右侧为本文演示的销售订单和销售订单新变更单的元数据扩展附件:Docs.zip,里面没有变更单表名的修改,要注意通过BOSIDE修改下变更单二开单据体/子单据体的表名。


注意事项:

1,二开单据体/子单据对应的表名在原始销售订单和销售订单新变更单上必须不一致

2,销售订单新变更单二开单据体/子单据体必须额外追加绑定属性名为PKIDX的字段,此字段是用于标识变更了哪个原始订单上的哪个分录/子分录数据,后台生效服务端插件代码是依据PKIDX属性来做判断的。

3,在销售订单新变更单上,不在变更单二开单据体/子单据体上显示的行会被标识为待删除的行,生效时会直接删除,这种设计与销售订单上的明细信息主单据体是有区别的,明细信息是按变更类型字段值来决定是否删除。

4,如果存在二开多选基础资料,多选辅助资料等字段(这些多选的字段会有一个额外的表名存储内部数据),也要确保表名在销售订单和销售订单新变更单不一致

5,如果是已经存在单据的情况下改二开表名,则会对历史单据有影响,比如新变更单改了二开单据体的表名后(比如从A表改为B表),打开历史变更单据就会发现二开单据体为空了。变更单生效以后其实作用就不大了,仅作为记录存在而已,二开单据体为空影响也不大,当然如果从A表数据同步到B表后,变更单打开历史数据则不受影响,但其实A表的数据是区分不出来里面是订单二开数据还是变更单二开数据。



销售订单新变更单二开单据体支持生效案例

星空目前主推的销售订单变更方式就是新变更单,因为它可以支持审批流也支持二开单据体/子单据体的变更。如果存在自定义的单据体,必须...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息