kd.bos.entity.botp.plugin

## 接口 IWriteBackPlugIn

- 所有已知实现类:
    AbstractWriteBackPlugIn, KDWriteBackPlugIn

      public interface IWriteBackPlugIn

  反写插件：控制反写过程，需要注册到下游单据的关联配置属性中

- - ### 方法概要

    所有方法 实例方法 抽象方法
    限定符和类型 | 方法和说明
    --- | ---
    `void` | `afterCalcWriteValue(AfterCalcWriteValueEventArgs e)` 基于下游单据当前行，反写值计算完毕后，触发此事件：用于修正反写量，调整对各源单行的分配量
    `void` | `afterCommitAmount(AfterCommitAmountEventArgs e)` 执行反写规则，把当前反写量，写到源单行之后，触发此事件：用于对源单行，进行连锁更新
    `void` | `afterExcessCheck(AfterExcessCheckEventArgs e)` 对源单行反写执行完毕，超额检查完毕后，触发此事件：用于控制是否中止反写、提示超额，修正提示内容
    `void` | `beforeCreateArticulationRow(BeforeCreateArticulationRowEventArgs e)` 构建本关联主实体，单行数据与源单的关联记录前，触发此事件：用于取消本行的关联、反写
    `void` | `beforeExcessCheck(BeforeExcessCheckEventArgs e)` 对源单行反写执行完毕，超额检查前，触发此事件：用于取消超额检查
    `void` | `beforeExecWriteBackRule(BeforeExecWriteBackRuleEventArgs e)` 开始分析反写规则，计算反写量前触发此事件：用于取消当前反写规则的执行
    `void` | `beforeReadSourceBill(BeforeReadSourceBillEventArgs e)` 读取源单数据之前，触发此事件：用于添加需要加载的源单字段
    `void` | `beforeTrack(BeforeTrackEventArgs e)` 构建本关联主实体全部关联记录前，触发此事件：用于取消关联、反写
    `LinkSetItemElement` | `getCurrLinkSetItem()` 当前处理的关联主实体
    `java.lang.String` | `getOpType()` 当前操作类型：Draft,Save,Audit,UnAudit,Delete,Cancel,UnCancel,Unknown
    `BillEntityType` | `getTargetSubMainType()` 下游目标单主实体，仅包含了需要的字段，与单据数据包一致
    `void` | `preparePropertys(PreparePropertysEventArgs e)` 在读取下游目标单数据之前，触发此事件：用于添加需要加载的目标单字段
    `void` | `setContext(BillEntityType targetSubMainType, java.lang.String opType, LinkSetItemElement linkSetItem)` 设置当前上下文

- - ### 方法详细资料

    - #### getTargetSubMainType

          BillEntityType getTargetSubMainType()

      下游目标单主实体，仅包含了需要的字段，与单据数据包一致
      返回:

    - #### getOpType

          java.lang.String getOpType()

      当前操作类型：Draft,Save,Audit,UnAudit,Delete,Cancel,UnCancel,Unknown
      返回:

    - #### getCurrLinkSetItem

          LinkSetItemElement getCurrLinkSetItem()

      当前处理的关联主实体
      返回:

    - #### preparePropertys

          void preparePropertys(PreparePropertysEventArgs e)

      在读取下游目标单数据之前，触发此事件：用于添加需要加载的目标单字段
      参数:
        `e` -

    - #### setContext

          void setContext(BillEntityType targetSubMainType,
                          java.lang.String opType,
                          LinkSetItemElement linkSetItem)

      设置当前上下文
      参数:
        `targetMainType` - 下游目标单主实体，仅包含了需要的字段
        `opType` - 操作类型
        `linkSetItem` - 关联主实体

    - #### beforeTrack

          void beforeTrack(BeforeTrackEventArgs e)

      构建本关联主实体全部关联记录前，触发此事件：用于取消关联、反写
      参数:
        `e` -

    - #### beforeCreateArticulationRow

          void beforeCreateArticulationRow(BeforeCreateArticulationRowEventArgs e)

      构建本关联主实体，单行数据与源单的关联记录前，触发此事件：用于取消本行的关联、反写
      参数:
        `e` -

    - #### beforeExecWriteBackRule

          void beforeExecWriteBackRule(BeforeExecWriteBackRuleEventArgs e)

      开始分析反写规则，计算反写量前触发此事件：用于取消当前反写规则的执行
      参数:
        `e` -

    - #### afterCalcWriteValue

          void afterCalcWriteValue(AfterCalcWriteValueEventArgs e)

      基于下游单据当前行，反写值计算完毕后，触发此事件：用于修正反写量，调整对各源单行的分配量
      参数:
        `e` -

    - #### beforeReadSourceBill

          void beforeReadSourceBill(BeforeReadSourceBillEventArgs e)

      读取源单数据之前，触发此事件：用于添加需要加载的源单字段
      参数:
        `e` -

    - #### afterCommitAmount

          void afterCommitAmount(AfterCommitAmountEventArgs e)

      执行反写规则，把当前反写量，写到源单行之后，触发此事件：用于对源单行，进行连锁更新
      参数:
        `e` -

    - #### beforeExcessCheck

          void beforeExcessCheck(BeforeExcessCheckEventArgs e)

      对源单行反写执行完毕，超额检查前，触发此事件：用于取消超额检查
      参数:
        `e` -

    - #### afterExcessCheck

          void afterExcessCheck(AfterExcessCheckEventArgs e)

      对源单行反写执行完毕，超额检查完毕后，触发此事件：用于控制是否中止反写、提示超额，修正提示内容
      参数:
        `e` -