如何按照DocNum+LineNum+流水号生成批次号

概述

按照其它字段如:主表的DocDate、CrdID、细表的ItmID、ItmName等无法生成想要的批次号,本文将介绍如何按照DocNum+LineNum+流水号生成批次号。

在介绍如何设置之前,我们首先了解一下掩码的表及字段设置。

可选择的有三个表,分别为“业务”,“物料”,“业务伙伴”。

业务--->BCIbr;物料--->MDItm;业务伙伴:--->BPVnd。

<think>我们正在解决如何在没有具体IDoc编的情况下获取IDoc的详细字段信息。根据引用[2]和引用[3],我们可以通过以下方法获取IDoc的字段结构信息,而不需要具体的IDoc编。###方法一:使用事务代码WE60(IDoc文档浏览器)1.**进入事务代码**:在SAP命令框中输入`WE60`并执行。2.**选择IDoc类型**:-输入要查询的IDoc基本类型(例如:`ORDERS01`)和版本(通常选择最新版本)。-点击执行或按回车键。3.**查看字段结构**:-系统会显示该IDoc类型的层次结构,包括所有段(Segments)。-展开任意段节点(例如:`E1EDK01`),即可查看该段包含的所有字段及其详细描述。-每个字段的说明包括技术信息(数据类型、长度)和业务含义[^2]。###方法二:使用事务代码WE30(IDoc类型开发工具)1.**进入事务代码**:输入`WE30`,输入IDoc基本类型(例如:`ORDERS01`)。2.**选择版本**:通常选择当前激活的版本(如`000`)。3.**查看段定义**:-在对象类型列表中选择目标段(例如:`E1EDK01`)。-双击该段,进入段定义界面。-点击工具栏上的**“字段列表”**按钮(或按F7),即可查看该段的所有字段定义[^2]。###方法三:通过数据库表查询字段结构IDoc的字段结构存储在SAP数据字典中,可通过以下表查询:-**EDIDD**:存储IDoc数据记录(包含段数据),但该表存储的是具体IDoc的数据,不是结构定义。-**DD03L**:数据字典表字段描述表。要获取某个段(如`E1EDK01`)的字段结构,可执行以下步骤:1.使用事务代码`SE11`(数据字典)。2.输入表/结构名:`E1EDK01`(注意:段在SAP中通常定义为结构或表类型)。3.点击**“显示”**按钮,即可查看该结构的所有字段及其技术属性(数据类型、长度等)[^3]。>**注意**:段结构名称通常以`E1`、`E2`或`Z1`(自定义段)开头。###示例:销售订单IDoc(ORDERS01)的字段结构通过WE60查看`ORDERS01`类型中`E1EDK01`段的字段:|字段名|数据类型|长度|描述||--------|----------|------|--------------------||DOCNUM|CHAR|16|IDoc编||KUNNR|CHAR|10|客户编||BSTYP|CHAR|1|订单类型||...|...|...|...|###总结-**无IDoc编时**:使用事务码`WE60`或`WE30`直接查看IDoc类型的字段结构定义。-**有自定义段时**:在`WE30`中查看扩展结构,或通过`SE11`查看自定义结构。§§相关问题§§1.如何通过ABAP代码获取IDoc类型的字段结构?2.IDoc段结构在SAP数据字典中如何存储?3.如何导出IDoc字段结构为EXCEL文档?4.自定义IDoc字段后如何更新结构定义?5.哪些事务代码可以比较不同IDoc版本间的字段差异?</think>### 获取IDoc字段结构的方法(无需IDoc编) 根据您提供的引用信息,以下是获取IDoc字段结构的完整方案(无需具体IDoc编): #### 1. **使用事务代码 WE60(推荐)** > 引用[2]:"WE60 IDOC类型文档(可以查看IDOC结构,和每个字段的描述)" - **操作路径**: 1. 事务码输入 `WE60` 2. 输入目标IDoc类型(如 `ORDERS01`) 3. 选择版本(通常为最新版本) - **查看字段**: - 系统显示树形结构,逐层展开段节点 - 点击段名称(如 `E1EDK01`)查看: - 字段技术名称(如 `DOCNUM`) - 字段描述文本 - 数据类型和长度 - 是否必填字段 #### 2. **通过数据库表直接查询** > 引用[3]:"Idoc的Control record信息存储在EDIDC表中" - **关键表结构**: ```sql EDIDC -- IDoc控制记录(元数据) EDIDD -- IDoc数据记录(实际字段值) DD03L -- SAP数据字典(字段定义) ``` - **字段查询示例**: ```abap SELECT dd03l.fieldname, dd03l.position, dd03l.datatype, dd03l.leng, dd03t.ddtext FROM dd03l INNER JOIN dd03t ON dd03l.fieldname = dd03t.fieldname WHERE dd03l.tabname = 'E1EDK01' -- 目标段名 AND dd03t.ddlanguage = 'E' -- 英文描述 ``` #### 3. **事务代码 WE30(开发者视图)** > 引用[2]:WE30用于IDoc类型开发 - **操作流程**: 1. `WE30` → 输入IDoc类型 → 双击目标段 2. 点击工具栏 **字段列表** 按钮 3. 显示包含: - 字段顺序位置 - 数据元素(Data Element) - 域定义(Domain) - 技术约束(长度/小数位) #### 4. **通过ABAP程序获取结构定义** ```abap DATA: lt_dd03p TYPE TABLE OF dd03p. CALL FUNCTION 'DDIF_FIELDINFO_GET' EXPORTING tabname = 'E1EDK01' " 段名称 TABLES dfies_tab = lt_dd03p. LOOP AT lt_dd03p ASSIGNING FIELD-SYMBOL(<fs_field>). WRITE: / <fs_field>-fieldname, <fs_field>-datatype, <fs_field>-leng, <fs_field>-scrtext_m. " 字段描述 ENDLOOP. ``` ### 关键字段示例(销售订单IDoc) | 段名 | 字段 | 类型 | 长度 | 描述 | 数据元素 | |------------|------------|------------|------|----------------------|--------------| | **EDIDC** | DOCNUM | CHAR | 16 | IDoc编 | DOCNUM | | | STATUS | CHAR | 2 | 处理状态 | STATUS | | **E1EDK01**| KUNNR | CHAR | 10 | 客户编 | KUNNR | | | BSTYP | CHAR | 1 | 订单类型 | BSTYP | | **E1EDP01**| MATNR | CHAR | 40 | 物料 | MATNR | | | MENGE | QUAN | 15 | 数量 | MENGE_D | > **提示**:自定义字段可通过`SE11`查看数据元素`Z*`开头的对象[^3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值