定义总账处理

定义参数以启用总账处理来动态构造 SQL select 语句,从而将事务信息从Infor EAM转移到 ERP 应用程序中。通过动态 SQL,您可以根据组织的需求配置 Infor EAM 事务的选择和处理。

注意

本章中的示例使用特定于 Oracle 数据库和 PL/SQL 的标记法。如果 EAM 数据库是 Microsoft SQL Server,请使用 MS SQL Server 当量。

要定义总账处理:

  1. 选择管理>Databridge>总账处定义
  2. 单击新建记录
  3. 指定以下信息:
    总账处理定义
    输入标识总账处理定义的唯一代码,然后在相邻字段中输入描述,例如 DS ISSUES。
    注意

    创建的处理将确定所输入的唯一代码。通常,唯一代码指处理和组的组合。例如,如果要从 GVL 仓库的仓库处理创建发放,请输入 ISSUE_GVL

    行标识
    指定总账处理的源数据库表格行的唯一记录标识符,例如 r5translines.ROWID。
    注意

    必须使用标记行标识符 ROWID 以标识数据库表格中的源行。

    计划组
    指定用于识别总账处理组的分组值的表格列名称。
    注意

    计划组通常共享用于构建处理定义的 Where 语句的相关通用值。计划组可在总账参考号表单中用于创建组内的财务应用程序更改。

    分类账项种类
    指定用于标识信息提要参考组的 ERP 分类账项种类的唯一值,例如 trl_JECATEGORY。请咨询组织的财务经理以获取正确的值。
    分类账项来源
    指定用于标识信息提要参考组的 ERP 分类账项种类的唯一值,例如 trl_JESOURCE。请咨询组织的财务经理以获取正确的值。
    汇总
    选中此选项,以包括总账处理的摘要。
    账簿 ID
    指定用于标识信息提要参考组的 ERP 总账账簿的代码,例如 tra_org。请咨询组织的财务经理以获取正确的代码。如果使用多个账簿,处理定义与对正确事务集进行分类的参考组之间必须存在关系。
    日期
    指定用于总账分类账项的日期。可以输入原始事务的日期(如 TRL_DATE)、事务转移日期(如 SYSDATE)或用于标识事务财务周期结束的日期。
    金额
    如果在成本结算中使用开销系数,请指定事务的金额计算,例如 TRL_PRICE* TRL_QTY 或 TRL_PRICE*TRL_QTY*1.15。
    注意

    根据需要使用正值和负值。

    分段
    指定分类账项的账户代码科目。如果在 ERP 会计定义中已激活多个科目,则必须在此字段中输入所有科目,例如 ACD_SEGMENT1、ACD_SEGMENT2、ACD_SEGMENT3、ACD_SEGMENT4、ACD_SEGMENT5、ACD_SEGMENT6、ACD_SEGMENT7。
    注意

    如果输入多个科目,请勿包括“and”等连接语句。

    From 语句
    指定满足所有处理定义约束所需的Infor EAM来源表格。至少必须输入 R5ACCOUNTDETAIL 表格和一个事务表格,例如:r5translines、r5accountdetail、r5transactions。
    注意

    请勿在 From 语句的文本中包括 FROM 一词。

    Where 语句
    指定"where"条件子语。"where"条件子语取决于处理定义。必须输入所列的所有表格的连接语句以及 XXX_GLTRANSFER 和 XXX_GLTRANSFERFLAG 值的约束,用于防止记录多次提交,例如:
    trl_acd = acd_code AND NVL(trl_gltransferflag, '-' ) = '-' AND tra_code = trl_trans AND tra_rstatus = 'A' and tra_type = 'I' and trl_type = 'I' and trl_event is not null and trl_QTY >0
    

    使用源更新语句更新 XXX_GLTRANSFER 和 XXX_GRTRANSFERFLAG 列。因此,应限制 Where 语句条件子句中源更新语句的使用。例如,若要将基本 Where 语句用于需要 R5TRANSLINES 和 R5ACCOUNTDETAIL 的发放处理,则应输入 trl_acd = acd_code and nvl(trl_gltransferflag,'+') != '+' and trl_rtype = 'I'。

    注意

    请勿在Where 语句中使用分号作为终止符或包括 WHERE 一词。

    源更新语句
    指定 SQL 语句以更新事务来源表格中的行。

    此语句会将事务记录标记为已处理,以便不会再次处理。必须在语句中包括标记 :ROWID 或 :rowid。

    请参阅会将事务记录标记为已处理的源更新语句的以下例如,以便不会再次处理。

    UPDATE r5translines SET trl_gltransferflag = '+', trl_gltransfer = sysdate WHERE rowid = :rowid
    目标更新语句
    指定 SQL 语句以更新 R5GLINTERFACE 表格以包含分类账导入所需的参考信息。目标更新语句将使用安装所需的自定义信息填充 R5GLINTERFACE 表格中的参考字段。例如,在参考字段中包括库存发放事务的库存代码、描述和工单号。然后,此参考信息将包括在分类账项中。请参阅使用两个标记的目标更新语句的以下例如:一个是参考 R5GLINTERFACE 中相应行的 :transid。第二个是参考事务源行标识符的 :rowid。事务源行标识符用于检索其他事务参考信息。
    Declare
    
    Cursor C1 is
    
    SELECT substr(v.PRV_VALUE,1,3) company, substr(v.PRV_VALUE,5,4) GLS,
    substr(v.PRV_VALUE,10,5) DEP,
    substr(v.PRV_VALUE,16,6) EXP, substr(v.PRV_VALUE,23,4) PL , substr(v.PRV_VALUE,28,3) IC, 
    substr(v.PRV_VALUE,32,6) FU
    from
    R5TRANSLINES L, R5PROPERTYVALUES V
    where l.rowid = :rowid
    and v.prv_property (+) = 'INVOFF' and v.PRV_RENTITY (+) = 'STOR'
    and v.PRV_CODE (+) = l.trl_store;
    BEGIN
    
    
    FOR r IN C1 LOOP
    UPDATE r5glinterface
    SET gli_segment1 = r.company, gli_segment2 = r.GLS,
    gli_segment3 = r.DEP, gli_segment4 = r.EXP
    WHERE gli_transid = :transid
    and gli_segment2 = '****' ; END LOOP;
    end;
    
  4. 单击保存记录