SAP ABAP 读取生产订单 记入文档的货物移动明细

本文介绍如何使用SAP ABAP通过COOIS功能读取生产订单的货物移动明细,包括设置选择参数、调用相关函数模块及处理返回数据的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

正文部分

按照COOIS读取货物移动记录的逻辑,通过COOIS的事务带出 要取移动记录的明细

在function【COIS_OUTPUT_FROM_IOC】上加入断点,查找搜索货物移动明细需要的参数内容信息。

比如生产订单 的sy-repid为PPIO_ENTRY

data: lt_seltab      type table of rsparams,
      ls_tcoa        type tcoa,
      lv_overview    type flag,
      l_repid        type sy-repid,
      l_valid(1)     type c,
      ls_seltab type rsparams.
Data:plv type table of rsparams with header line.
 
data:faufnr type afko-aufnr.
faufnr = ''.    生产订单号
l_repid  = 'PPIO_ENTRY'.
 
call function 'RS_REFRESH_FROM_SELECTOPTIONS'
  exporting
    curr_report     = l_repid
  tables
    selection_table = lt_seltab
  exceptions
    not_found       = 1
    no_report       = 2
    others          = 3.
if sy-subrc <> 0.
  message id sy-msgid type sy-msgty number sy-msgno
          with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  exit.
endif.
 
loop at lt_seltab into ls_seltab.
  case ls_seltab-selname.
    when 'P_ALV'.
      ls_seltab-low = 'X'.
    when 'P_AUTYP'.
      ls_seltab-low = '10'.
    when  'P_SC1100'.
      ls_seltab-low = 'PPIOD000                        00000000001X'.
    when  'P_TCOA'.
      ls_seltab-low = '000IOHEADER                      000001 00000'.
    when 'P_TCODE'.
      ls_seltab-low = 'COOIS'.
    when 'S_AUFNR'.
      ls_seltab-sign = 'I'.
      ls_seltab-option = 'EQ'.
      ls_seltab-low = faufnr.
    when 'S_FCTALW  '.
      ls_seltab-sign = 'E'.
      ls_seltab-option = 'CP'.
      ls_seltab-low = '*'.
  endcase.
  modify lt_seltab from ls_seltab.
endloop.
 
data:gs_tcoa type table of tcoa with header line .
gs_tcoa-mamo_sel = 'X'.
gs_tcoa-layoutid_bd = '/ZM'.   200系统  coois变式
 
* 转换选择信息
call function 'COIS_SELECT_PARAMETERS_SET'
  exporting
    it_parameter = lt_seltab
    is_tcoa      = gs_tcoa.
data: iomamo_tab type  iomamo_tab .
* 读取移动明细
call function 'COIS_SELECT_ORDERS_READ'
  changing
    ct_iomamo = iomamo_tab[].

 

、文章连接:SAP ABAP 读取生产订单 记入文档的货物移动明细

 

 

 

<think>好的,用户的问题是如何在SAP中查询或提取生产订单的抬头信息,需要知道相关的数据表或事务代码。首先,我需要回忆SAP生产订单相关的模块,通常是PP(生产计划)模块。生产订单的抬头数据可能包含订单号、物料编号、订单类型、计划开始和结束时间、状态等信息。 接下来,事务代码方面,常用的生产订单查询事务代码有CO03(显示生产订单)、COOIS(生产订单信息系统)。COOIS可能更全面,可以按各种条件筛选订单,并显示抬头和明细数据。用户可能需要使用COOIS来提取数据,或者通过SE16N等事务代码直接查询相关表。 关于数据表,生产订单的抬头表应该是AFKO,里面存储了订单的基本信息,比如订单号(AUFNR)、生产版本(PLNNR)、订单类型(AUART)等。另外,AUFK表也可能相关,它包含了订单的抬头状态和管理数据,比如工厂(WERKS)、创建日期(ERDAT)等。可能需要同时关联这两个表来获取完整的抬头信息。 还要考虑用户的权限问题,是否有权限访问这些事务代码或表。另外,如果用户需要批量导出数据,可能需要写ABAP程序或者使用SAP的导出工具,比如LSMW或者通过SE16N导出数据。但用户的问题主要是查询和提取,所以重点在事务代码和表。 还需要注意不同SAP版本可能会有不同的表结构,但通常AFKO和AUFK是标准的。此外,订单状态可能涉及JEST表,但抬头信息可能在AFKO和AUFK中已经包含。 可能需要验证这些信息是否正确,比如检查AFKO表的字段是否包含用户需要的抬头数据。例如,AFKO-AUFNR是订单号,AFKO-PLNBEZ是生产版本,而AUFK-AUART是订单类型,AUFK-WERKS是工厂等。如果用户需要更多字段,可能需要查看相关表的文档或数据字典。 总结一下,回答用户需要提供事务代码CO03、COOIS,以及数据表AFKO和AUFK,并说明每个表的关键字段。同时,提醒用户权限和实际系统中的可能差异,建议先测试这些事务代码和表是否存在必要的数据。</think>在SAP系统中提取生产订单抬头信息,可通过以下两种方式实现: ### 一、通过事务代码查询 1. **CO03(显示生产订单)** 输入生产订单号后可直接查看订单抬头信息,包含: - 订单类型(如PP01/PP02) - 物料编号(Material) - 计划开始/结束日期 - 订单状态(如CRTD/REL/CNF) 2. **COOIS(生产订单信息系统)** 支持多条件筛选订单并导出数据,操作路径: ``` 事务代码COOIS → 选择"订单抬头"选项卡 → 设置筛选条件 → 执行 ``` ### 二、通过数据表提取 生产订单抬头数据主要存储在以下表中: 1. **AFKO表(订单抬头 - 工艺路线相关)** 关键字段: - AUFNR(订单号) - PLNNR(工艺路线组) - PLNAL(工艺路线组计数器) - GLTRP(基本完成日期) $$ \text{SELECT aufnr, plnnr, gltrp FROM afko WHERE werks = '工厂代码'} $$ 2. **AUFK表(订单主数据)** 关键字段: - AUFNR(订单号) - AUART(订单类型) - MATNR(物料号) - GAMNG(订单数量) - ERDAT(创建日期) $$ \text{SELECT aufnr, auart, matnr FROM aufk WHERE werks = '工厂代码'} $$ 3. **关联查询建议** 需同时关联AFKO和AUFK表以获取完整信息: ```sql SELECT a.aufnr, a.auart, b.plnnr, a.matnr FROM aufk AS a INNER JOIN afko AS b ON a.aufnr = b.aufnr ``` ### 三、扩展说明 - **权限要求**:访问这些表通常需要开发权限(如SE16N)或业务权限[^3] - **数据更新机制**:生产订单状态变更记录可通过表CDHDR/CDPOS追溯[^1] - **系统集成特性**:订单类型配置涉及TCODE OPPF,相关主数据存储在T182/T183等配置表中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值