代码改变世界

Change Standard Production Order IDoc Segment

2013-01-11 13:43  VincentMK  阅读(1441)  评论(0编辑  收藏  举报

忙了一周,终于有时间停下来整理一下。

这周主要的任务是修改SAP标准的Production Order IDoc,将Order Long text内容合并到Routing的Short Text中。

这样做的目的是基于公司内的两个系统之间数据的传递,在此记录下来的目的是如果以后需要更改SAP标准的IDoc,应该知道从何下手,纯粹经验之谈,不足为道。

先列出IDoc业务需要的一系列操作。

WE21-设置IDoc ports,可选类型file、ABAP、xml

WE20-维护partner profiles、message type、receiver port

WE82-查看message type 和 idoc type的对应关系

WE30-查看idoc type结构,segment、field

WE14-手动处理idoc

WE02-查看idoc状态

AL11-查看idoc维护路径下生成的内容

BD64-创建发送或接收对象,创建分类模型

BD10-发送物料

WE19-测试idoc,查看具体运行时的字段值

WEDI-打开idoc area

SALE-为client 创建逻辑系统

define logical system:sap netweaver-application server-idoc interface-basic settings-logical system-define logical system

assign logical system to client:sap netweaver-application server-idoc interface-basic settings-logical system-assign logical system to client

*************************************************************************************************************

工单IDoc

Program:RCCLORD

Message type:LOIPRO

IDoc type:LOIPRO01

生成IDoc的function:CLOI_MASTERIDOC_CREATE_LOIPRO

如果需要客制化具体的field,需使用这个增强,EXIT_SAPLLOI1_002,

在创建或修改自己需要的field时,可参照function CLOI_MASTERIDOC_CREATE_LOIPRO中的信息去创建,

以生产工单为例,

Segment E3AFKOL是工单header的信息

Segment E3AFVOL是工单routing的信息

这些Segment在WE30中输入idoc type都可以看到,也就是idoc中所装载的具体信息。

FUNCTION EXIT_SAPLLOI1_002.
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     VALUE(MESSAGE_TYPE) LIKE  EDMSG-MSGTYP
*"     VALUE(SEGMENT_NAME) LIKE  EDIDD-SEGNAM
*"     VALUE(F_AFKO) LIKE  E3AFKOL STRUCTURE  E3AFKOL OPTIONAL
*"     VALUE(F_JSTK) LIKE  E3JSTKL STRUCTURE  E3JSTKL OPTIONAL
*"     VALUE(F_AFFL) LIKE  E3AFFLL STRUCTURE  E3AFFLL OPTIONAL
*"     VALUE(F_AFVO) LIKE  E3AFVOL STRUCTURE  E3AFVOL OPTIONAL
*"     VALUE(F_JSTV) LIKE  E3JSTVL STRUCTURE  E3JSTVL OPTIONAL
*"     VALUE(F_KBED) LIKE  E3KBEDL STRUCTURE  E3KBEDL OPTIONAL
*"     VALUE(F_AFUV) LIKE  E3AFUVL STRUCTURE  E3AFUVL OPTIONAL
*"     VALUE(F_JSTU) LIKE  E3JSTUL STRUCTURE  E3JSTUL OPTIONAL
*"     VALUE(F_KBEU) LIKE  E3KBEUL STRUCTURE  E3KBEUL OPTIONAL
*"     VALUE(F_RESB) LIKE  E3RESBL STRUCTURE  E3RESBL OPTIONAL
*"     VALUE(F_AFAB) LIKE  E3AFABL STRUCTURE  E3AFABL OPTIONAL
*"     VALUE(F_AFPO) LIKE  E3AFPOL STRUCTURE  E3AFPOL OPTIONAL
*"     VALUE(F_AFVO_KEY) TYPE  CLOI_AFVO_STRUCT OPTIONAL
*"     VALUE(F_RESB_KEY) TYPE  CLOI_RESB_STRUCT OPTIONAL
*"     VALUE(F_AFUV_KEY) TYPE  CLOI_AFUV_STRUCT OPTIONAL
*"     VALUE(ISI_ENHANCEMENT) TYPE  ISI_EXIT_SAPLLOI1_002 OPTIONAL
*"  EXPORTING
*"     VALUE(IDOC_CIMTYPE) LIKE  EDIDC-CIMTYP
*"  TABLES
*"      IDOC_DATA STRUCTURE  EDIDD
*"----------------------------------------------------------------------


  INCLUDE ZXLOIU02.


ENDFUNCTION.

如下还有一系列出口,大都是用来增强标准的BOM、Material Master等其他IDoc,具体需要使用时可仔细研究

EXIT_RMCPAMRP_002
EXIT_SAPLLOI1_001
EXIT_SAPLLOI1_002
EXIT_SAPLLOI1_003
EXIT_SAPLLOI1_004
EXIT_SAPLLOI1_005
EXIT_SAPLLOI1_006
EXIT_SAPLLOI1_007
EXIT_SAPLLOI1_008
EXIT_SAPLLOI1_009
EXIT_SAPLLOI2_001

 

这一系列增强基本上可以解决大部分的IDoc问题,因为IDoc本身作为一种载体,无外乎是输出数据、接收数据,在此就需要根据自己的需要去输出和接收字段,

那么出口就完全允许你做到这一点。

 

2013.01.11

好久没有打球了,明天应该好好锻炼下。