利用合约关系进行合约交易(必须已经签署生效的合作关系)

  1. 接口单据,基于合约交易过程中,一方传递给另一方的协议类型的单据,单据中必须包含合约关系id和共识项

如:一方的采购订单对应另一方的销售订单。接口单据一一对应,即双方都存在一个通过合约关系建立的单据(一个采购订单对应另一方的一个销售订单),该接口单据包含合约关系信息id,提供单据的一方为甲方(邀约方,例如采购订单),接受单据的为乙方(执行方,例如销售订单)。双方数据交换以甲方的单据id为依据进行。

  1. 共识项(关联项),是跟踪合约交易项信息的数据字段集合,包含id,具有完整性,代表合约中订单项,唯一识别一个项目的id。例如采购订单的一个明细产品项目。

       合约交易过程中,不仅需要传递订单,还需要反馈订单的执行进度,针对订单项进行信息沟通。因此共识项可以确定,订单的执行进度和状态。

       邀约方(甲方)明细记录的id通常作为交易项的唯一标识。 

  1. 接口单据的状态和操作
  • 接口单据状态
    • 邀约方(甲方): 新建(还未传输给对方),待确认(传输给对方,待对方确认,待确认期间邀约方还可以更新接口单据?),生效(对方已经确认合约生效),拒绝 (对方拒绝,合约作废)
    • 执行方(乙方): 待确认(接受到对方合约未确认),生效(接受合约,合约生效),拒绝(拒绝对方合约,合约作废)


  CREATED("created"), //建立完成         ACCEPTED("accepted"), //接受待确认         REJECTED("rejected"), //拒绝         CONFIRMED("confirmed"); //确认

  • 接口单据的操作(合约协议的签署过程):
    • 发送:(创建) 将采购订单发送给对方,形成销售协议(合同)    
    • 确认:接受合约,合约生效
    • 拒绝:拒绝合约,合约失效
    • 撤回:撤回未生效的合约,邀约方单据进入新建状态,乙方合约单据作废。撤回已生效的合约,待对方确认后,双方合约才会处于待确认状态。


  1. 操作的系统数据项

 cstatus (合约状态),

cconfirmduedate  同意或者拒绝的有效时间,超过期限,不能在同意或者拒绝单据,有效期限有合约实例 confirmdays 属性确定,如果该属性为null 表明没有期限限定。

ccancelstate 单据同意后,如果撤销首先更新该字段1 表明自己发起撤销,2 表明对方发起撤销。

  1. 邀约方定义

      邀约方(甲方)职责

<ATTRIBUTE TYPE="DS/PR/PS/LR/LS" PROGID="CNTCOOP" SVRERI="" RELEASE="0~0~0" USERVERSION="1">

                       <PROVIDER EDITOR="..EDIT" MAINDS="..BROWSEDS" ALIAS="CONTRACT" ALLALIAS="DEFAULT" IDPARAM="glqyid" IDFIELD="glqyid">

                               EDITOR 接口单据的编辑属性 MAINDS 用于查询接口单据主数据集信息的数据集,ALIAS,用于查询合约信息,不包含已经rejected的合约,

ALLALIAS 主数据集中包含所有记录的

IDPARAM  合约id的参数名称,对于邀约方为本单据id参数,IDFIELD合约字段的名称,对于邀约方为本单据的id字段

                               <CONTRACTREL ITEMCODE="CNT" PATH="" ID="relationid"/>

                               合约关系定义,通过主数据集获得 PATH 或ID 表达式

                               <TRANSFER PARAMNAME="glqyid">

邀约方生成合约的数据转移定义,PARAMNAME 生成转移的参数名称,值为本单据id

                                       <DATASET CODE="EDITDS" ERI="..EDITDS" ALIAS="DEFAULT">

                                               <FIELD SOURCE="ename" TARGET="ename"/>

                                       </DATASET>

                               </TRANSFER>

                               <OPMESSAGE ACCEPT="" CONFIRM="" REJECT="" WITHDRAW=""/>

               前端用于生成操作消息的动态文本

                               <STATUSCONDITION CREATED="" ACCEPTED="" CONFIRMED="" REJECTED=""/>

接口单据状态转移的条件定义


                               <RELATIONDS ERI=".HZGX.BROWSEDS" ALIAS="DEFAULT" PARAM="contractrelationid" NAMEEXP="ename + '('+ecode+')' "/>

关系数据集,通过关系id查询信息,比如供应商,或者客户的对方的信息,NAMEEXP显示在交易中的对方名称

                               <EXESTATUSREC CODE="SYNCSTORE" NAME="同步库存信息" CONDITION="" EXESTATUS="ename">

执行状态同步操作接收方(可选),在合约执行过程中同步执行进度的信息,例如入库或发货情况, CODE:唯一识别,与发送方对应,

NAME 操作名称显示在菜单中

CONDITION 可以执行操作的条件,EXESTATUS 同步的字段名称,执行后接口单据的字段内容设置为NAME的值。

                                       <DATASET CODE="EDITDS" ITEMID="glqyid">tranmemo</DATASET> ITEMID 两边必须都存在,且相等

接收同步内容的数据集和字段,作为接受者,允许更新的字段,ITEMID 为双方的共识项

                               </EXESTATUSREC>

<EXESTATUSSND CODE="SYNCSTORE" NAME="同步库存信息" CONDITION="" EXESTATUS="ename" MESSAGE="{ecode}同步">

执行状态同步的发送方(可选),NAME 操作名称显示在菜单中,CONDITION:执行发送操作的条件,

EXESTATUS 同步的字段名称,执行后接口单据的字段内容设置为NAME的值。 MESSAGE 自动生成的发布消息,动态文本(包含表达式的文本)

                                       <TRANSFER PARAMNAME="tranid">

数据转换定义,用于生成更新数据,发送给接收方,参数为共识项

                                               <DATASET CODE="EDITDS" ERI="..EDITDS" ALIAS="DEFAULT">

                                                       <FIELD SOURCE="tranmemo" TARGET="tranmemo"/>

                                                       <FIELD SOURCE="tranid" TARGET="glqyid"/> 两个id相互对应

                                               </DATASET>

                                       </TRANSFER>

                               </EXESTATUSSND>

                       </PROVIDER>

               </ATTRIBUTE></DEF>

 

  1. 执行方定义

      执行方(乙方)

               <ATTRIBUTE TYPE="DS/PR/PS/LR/LS" PROGID="CNTCOOP" SVRERI="" RELEASE="0~0~0" USERVERSION="1">

                       <EXECUTOR EDITOR="..EDIT" MAINDS="..BROWSEDS" ALIAS="CONTRACT" ALLALIAS="DEFAULT" IDPARAM="tranid" IDFIELD="tranid">

                               <CONTRACTREL ITEMCODE="CNT" PATH="" ID="relationid"/>

                               <RELATIONDS ERI=".HZGX.BROWSEDS" ALIAS="DEFAULT" PARAM="contractrelationid" NAMEEXP="ename">

                                       <FIELD CODE="tranmemo" VALUE="tranmemo"/>                                        

                       根据关系数据集更新生成的合约信息,比如对方(客户或供应商)的id等,

 CODE 字段名称  VALUE 表达式,用于计算目标字段的值。 

                                       <FIELD CODE="relationid" VALUE="contractrelationid"/>

                               </RELATIONDS>

                               <STATUSCONDITION CREATED="" ACCEPTED="" CONFIRMED="" REJECTED=""/>

                               <OPMESSAGE ACCEPT="" CONFIRM="" REJECT="" WITHDRAW=""/>

<EXESTATUSSND ...> ......</EXESTATUSSND> 

<EXESTATUSSND ...> .......</EXESTATUSSND>                                  

                       </EXECUTOR>

               </ATTRIBUTE>

  

接口单据状态变化后触发实体事件,可以用来在流程中使用,

事件代码"STATUS" 事件名称"合约状态"

Created with the Personal Edition of HelpNDoc: Free iPhone documentation generator