SAP采购订单屏幕BADI增强(实例)
発注伝票拡張後結果画面 |
実装 | |
ステップ1 | SE11でEKKOとEKPOの定義に拡張項目を追加する |
EKKOの定義に既存の構造CI_EKKODBに拡張項目を追加する |
EKPOの定義に既存の構造CI_EKPODBに拡張項目を追加する |
ステップ2 | SE80で汎用グループ実装、拡張画面定義及び拡張画面項目値の引渡汎用モジュールを実装する |
ヘッダ拡張項目定義 |
※構造ZMM0S0130はZMM0S0020をインクルードしているので構造CI_EKKODBと同じ、ZMM0S0131も 構造CI_EKPODBと同じである。 |
明細拡張項目定義 |
汎用モジュールソースコード
************************************************************************
* 機能ID : MMP008
* 機能名称 : 購買発注伝票拡張(BADI)
* 機能概要 : 購買発注項目拡張
* 作成者 : XXX
* 作成日 : 2014/03/13
************************************************************************
* 変更履歴
* 変更管理番号 移送依頼 更新日付 更新者 変更内容
* xxxxxxxxxx xxxxxxxxxx YYYY/MM/DD 漢字名称
* B0608 RD1K906450 2014/06/08 XXX 全拡張項目を標準画面に実装(発注))
*-----------------------------------------------------------------------
FUNCTION Z_MMP008_HEAD01_POP.
*"----------------------------------------------------------------------
*"*"ローカルインタフェース:
*" EXPORTING
*" REFERENCE(F_EP_ZMM0S0130) TYPE ZMM0S0130
*"----------------------------------------------------------------------* 拡張画面値→標準へ戻すF_EP_ZMM0S0130 = ZMM0S0130.* 画面属性項目値をCHAR属性項目にセットF_EP_ZMM0S0130-ZZBUFISKIN = ZMM0S0130-ZZBUFISKIN_W. "移送入部振伝票金額SHIFT F_EP_ZMM0S0130-ZZBUFISKIN LEFT DELETING LEADING SPACE.F_EP_ZMM0S0130-ZZGIKADKIN = ZMM0S0130-ZZGIKARKIN_W. "外貨金額SHIFT F_EP_ZMM0S0130-ZZGIKADKIN LEFT DELETING LEADING SPACE.F_EP_ZMM0S0130-ZZGIKADTCD = ZMM0S0130-ZZGIKADTCD_W. "外貨通貨SHIFT F_EP_ZMM0S0130-ZZGIKADTCD LEFT DELETING LEADING SPACE.ENDFUNCTION.
************************************************************************
* 機能ID : MMP008
* 機能名称 : 購買発注伝票拡張(BADI)
* 機能概要 : 購買発注項目拡張
* 作成者 : XXX
* 作成日 : 2014/03/13
************************************************************************
* 変更履歴
* 変更管理番号 移送依頼 更新日付 更新者 変更内容
* xxxxxxxxxx xxxxxxxxxx YYYY/MM/DD 漢字名称
* B0608 RD1K906450 2014/06/08 XXX 全拡張項目を標準画面に実装(発注))
*-----------------------------------------------------------------------
FUNCTION Z_MMP008_HEAD01_PUSH.
*"----------------------------------------------------------------------
*"*"ローカルインタフェース:
*" IMPORTING
*" REFERENCE(F_IP_ZMM0S0130) TYPE ZMM0S0130
*"----------------------------------------------------------------------* 標準→拡張画面で受けるZMM0S0130 = F_IP_ZMM0S0130.* 関連NOが未指定で入力ルートがSAの場合のみ関連の自動提案を行うIF ZMM0S0130-ZZKRENO IS INITIAL ANDZMM0S0130-ZZNYUROKBN = CNS_ZZNYUROKBN.IF W_ZZKRENO IS INITIAL.CALL FUNCTION 'NUMBER_GET_NEXT'EXPORTINGNR_RANGE_NR = CNS_NRRANGENROBJECT = CNS_OBJECT
* QUANTITY = '1'
* SUBOBJECT = ' '
* TOYEAR = '0000'
* IGNORE_BUFFER = ' 'IMPORTINGNUMBER = W_ZZKRENO
* QUANTITY =
* RETURNCODE =EXCEPTIONSINTERVAL_NOT_FOUND = 1NUMBER_RANGE_NOT_INTERN = 2OBJECT_NOT_FOUND = 3QUANTITY_IS_0 = 4QUANTITY_IS_NOT_1 = 5INTERVAL_OVERFLOW = 6BUFFER_OVERFLOW = 7OTHERS = 8.IF SY-SUBRC IS INITIAL.ZMM0S0130-ZZKRENO = W_ZZKRENO.ELSE.MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNOWITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.ELSE.ZMM0S0130-ZZKRENO = W_ZZKRENO.ENDIF.ENDIF.* 数量金額拡張CHAR項目を画面数量金額属性WorkにセットZMM0S0130-ZZBUFISKIN_W = ZMM0S0130-ZZBUFISKIN. "移送入部振伝票金額ZMM0S0130-ZZGIKARKIN_W = ZMM0S0130-ZZGIKADKIN. "外貨金額ZMM0S0130-ZZGIKADTCD_W = ZMM0S0130-ZZGIKADTCD. "外貨通貨ENDFUNCTION.
************************************************************************
* 機能ID : MMP008
* 機能名称 : 購買発注伝票拡張(BADI)
* 機能概要 : 購買発注項目拡張
* 作成者 : XXX
* 作成日 : 2014/03/13
************************************************************************
* 変更履歴
* 変更管理番号 移送依頼 更新日付 更新者 変更内容
* xxxxxxxxxx xxxxxxxxxx YYYY/MM/DD 漢字名称
* B0608 RD1K906450 2014/06/08 XXX 全拡張項目を標準画面に実装(発注))
*-----------------------------------------------------------------------
FUNCTION Z_MMP008_INIT.
*"----------------------------------------------------------------------
*"*"ローカルインタフェース:
*"----------------------------------------------------------------------* 変数初期化
CLEAR : ZMM0S0130, ZMM0S0131, W_ZZKRENO.ENDFUNCTION.
************************************************************************
* 機能ID : MMP008
* 機能名称 : 購買発注伝票拡張(BADI)
* 機能概要 : 購買発注項目拡張
* 作成者 : XXX
* 作成日 : 2014/03/13
************************************************************************
* 変更履歴
* 変更管理番号 移送依頼 更新日付 更新者 変更内容
* xxxxxxxxxx xxxxxxxxxx YYYY/MM/DD 漢字名称
* B0608 RD1K906450 2014/06/08 XXX 全拡張項目を標準画面に実装(発注))
*-----------------------------------------------------------------------
FUNCTION Z_MMP008_ITEM01_POP.
*"----------------------------------------------------------------------
*"*"ローカルインタフェース:
*" EXPORTING
*" REFERENCE(F_EP_ZMM0S0131) TYPE ZMM0S0131
*"----------------------------------------------------------------------* 拡張画面値→標準へ戻すF_EP_ZMM0S0131 = ZMM0S0131.* 画面属性項目値をCHAR属性項目にセットF_EP_ZMM0S0131-ZZDETTNK = ZMM0S0131-ZZMEISITNK_W. "明細単価SHIFT F_EP_ZMM0S0131-ZZDETTNK LEFT DELETING LEADING SPACE.F_EP_ZMM0S0131-ZZDETKIN = ZMM0S0131-ZZDETCUKIN_W. "明細金額SHIFT F_EP_ZMM0S0131-ZZDETKIN LEFT DELETING LEADING SPACE.F_EP_ZMM0S0131-ZZBUFIDTNK = ZMM0S0131-ZZBUFIDCUTNK_W. "移送入部振明細単価SHIFT F_EP_ZMM0S0131-ZZBUFIDTNK LEFT DELETING LEADING SPACE.F_EP_ZMM0S0131-ZZBUFIDKIN = ZMM0S0131-ZZBUFIDCUKIN_W. "移送入部振明細金額SHIFT F_EP_ZMM0S0131-ZZBUFIDKIN LEFT DELETING LEADING SPACE.ENDFUNCTION.
************************************************************************
* 機能ID : MMP008
* 機能名称 : 購買発注伝票拡張(BADI)
* 機能概要 : 購買発注項目拡張
* 作成者 : XXX
* 作成日 : 2014/03/13
************************************************************************
* 変更履歴
* 変更管理番号 移送依頼 更新日付 更新者 変更内容
* xxxxxxxxxx xxxxxxxxxx YYYY/MM/DD 漢字名称
* B0608 RD1K906450 2014/06/08 XXX 全拡張項目を標準画面に実装(発注))
*-----------------------------------------------------------------------
FUNCTION Z_MMP008_ITEM01_PUSH.
*"----------------------------------------------------------------------
*"*"ローカルインタフェース:
*" IMPORTING
*" REFERENCE(F_IP_ZMM0S0131) TYPE ZMM0S0131
*"----------------------------------------------------------------------* 標準→拡張画面で受けるZMM0S0131 = F_IP_ZMM0S0131.* 数量金額拡張CHAR項目を画面数量金額属性WorkにセットZMM0S0131-ZZMEISITNK_W = ZMM0S0131-ZZDETTNK. "明細単価ZMM0S0131-ZZDETCUKIN_W = ZMM0S0131-ZZDETKIN. "明細金額ZMM0S0131-ZZBUFIDCUTNK_W = ZMM0S0131-ZZBUFIDTNK. "移送入部振明細単価ZMM0S0131-ZZBUFIDCUKIN_W = ZMM0S0131-ZZBUFIDKIN. "移送入部振明細金額ENDFUNCTION.
PBO、PAIメソッド実装する |
グローバル変数定義 |
FUNCTION-POOL ZMMP008. "MESSAGE-ID ..* 画面用TABLES定義
TABLES :
ZMM0S0130, " ヘッダ
ZMM0S0131. " 明細CONSTANTS CNS_NRRANGENR TYPE INRI-NRRANGENR VALUE '01'. "番号範囲番号
CONSTANTS CNS_OBJECT TYPE INRI-OBJECT VALUE 'ZCM001'. "番号範囲OBJ
CONSTANTS CNS_ZZNYUROKBN TYPE ZENYUROKBN VALUE 'SA'. "入力ルート区分*----------------------------------------------------------------------*
* 変数宣言(DATA)
*----------------------------------------------------------------------*
DATA : OK-CODE TYPE SY-UCOMM. " INCLUDE LMEVIEWSF01用 OKCODE
DATA W_ZZKRENO TYPE ZEKRENO. "関連NoINCLUDE LMEVIEWSF01. " 標準部品
汎用モジュールの実装箇所 |
ステップ3 | SE18で拡張BADI(ME_GUI_PO_CUST)実装、拡張画面項目値の引渡メソッドを実装する |
変数定義 |
CNS_APPL Constant Private Type STRING40 'PO'
CNS_ELEMENT_HEAD Constant Private Type STRING40 shmtable_s 内の 40 文字文字列 'HEADER'
CNS_ELEMENT_ITEM Constant Private Type STRING40 shmtable_s 内の 40 文字文字列 'ITEM'
CNS_SCNAME_HEAD Constant Private Type MEPO_SUBSCRIBERS-NAME 'HEADERSCREEN01'
CNS_SCNAME_ITEM Constant Private Type MEPO_SUBSCRIBERS-NAME 'ITEMSCREEN01'
CNS_PROGRAM Constant Private Type MEPO_SUBSCRIBERS-PROGRAM 'SAPLZMMP008'
CNS_DYNPRO_HEAD Constant Private Type MEPO_SUBSCRIBERS-DYNPRO '9000'
CNS_DYNPRO_ITEM Constant Private Type MEPO_SUBSCRIBERS-DYNPRO '9010'
CNS_STRUCT_HEAD Constant Private Type MEPO_SUBSCRIBERS-STRUCT_NAME 'ZMM0S0130'
CNS_STRUCT_ITEM Constant Private Type MEPO_SUBSCRIBERS-STRUCT_NAME 'ZMM0S0131'
CNS_POSITION_HEAD Constant Private Type MEPO_SUBSCRIBERS-POSITION 11
CNS_POSITION_ITEM Constant Private Type MEPO_SUBSCRIBERS-POSITION 99
CNS_HEIGHT_HEAD Constant Private Type MEPO_SUBSCRIBERS-HEIGHT 7
CNS_HEIGHT_ITEM Constant Private Type MEPO_SUBSCRIBERS-HEIGHT 7
STR_ZMM0S0130 Instance Attribute Private Type ZMM0S0130
STR_ZMM0S0131 Instance Attribute Private Type ZMM0S0131
STR_ZMM0S0130_PBO Instance Attribute Private Type ZMM0S0130
STR_ZMM0S0130_PAI Instance Attribute Private Type ZMM0S0130
STR_ZMM0S0131_PBO Instance Attribute Private Type ZMM0S0131
STR_ZMM0S0131_PAI Instance Attribute Private Type ZMM0S0131
メソッドソースコード
*======================================================================================
*画面を開く
*======================================================================================
METHOD IF_EX_ME_GUI_PO_CUST~SUBSCRIBE.DATA: L_STR_SUBSCRIBER LIKE LINE OF RE_SUBSCRIBERS. " MEPO: 独自の画面の公開* APPLICATIONがPOの場合のみ処理を行うCHECK IM_APPLICATION = CNS_APPL.* 画面設定判定CASE IM_ELEMENT.WHEN CNS_ELEMENT_HEAD. " ヘッダ
* ヘッダ画面設定CLEAR RE_SUBSCRIBERS[].L_STR_SUBSCRIBER-NAME = CNS_SCNAME_HEAD. " ビュー名L_STR_SUBSCRIBER-DYNPRO = CNS_DYNPRO_HEAD. " DYNPROL_STR_SUBSCRIBER-PROGRAM = CNS_PROGRAM. " プログラム名L_STR_SUBSCRIBER-STRUCT_NAME = CNS_STRUCT_HEAD. " テーブル名L_STR_SUBSCRIBER-LABEL = TEXT-001. " ラベル=ヘッダL_STR_SUBSCRIBER-POSITION = CNS_POSITION_HEAD. " ポジション(タブの位置)L_STR_SUBSCRIBER-HEIGHT = CNS_HEIGHT_HEAD. " 高さWHEN CNS_ELEMENT_ITEM. " 明細
* 明細画面設定L_STR_SUBSCRIBER-NAME = CNS_SCNAME_ITEM. " ビュー名L_STR_SUBSCRIBER-DYNPRO = CNS_DYNPRO_ITEM. " DYNPROL_STR_SUBSCRIBER-PROGRAM = CNS_PROGRAM. " プログラム名L_STR_SUBSCRIBER-STRUCT_NAME = CNS_STRUCT_ITEM. " テーブル名L_STR_SUBSCRIBER-LABEL = TEXT-002. " ラベル=明細L_STR_SUBSCRIBER-POSITION = CNS_POSITION_ITEM. " ポジション(タブの位置)L_STR_SUBSCRIBER-HEIGHT = CNS_HEIGHT_ITEM. " 高さWHEN OTHERS." 処理なしENDCASE.APPEND L_STR_SUBSCRIBER TO RE_SUBSCRIBERS.ENDMETHOD. "IF_EX_ME_GUI_PO_CUST~SUBSCRIBE*======================================================================================
*支払条件の制御
*======================================================================================METHOD IF_EX_ME_GUI_PO_CUST~MAP_DYNPRO_FIELDS.CONSTANTS L_CNS_ZZMETA TYPE C LENGTH 2 VALUE 'ZZ'. " FIELDNAME(頭2桁) アドオン項目判定用DATA L_STR_MAPPING LIKE LINE OF CH_MAPPING.* 項目カタログのFIELDNAME頭2桁が"ZZ"の場合、支払条件のメタ項目を設定するLOOP AT CH_MAPPING[] INTO L_STR_MAPPING.IF L_STR_MAPPING-FIELDNAME+000(002) = L_CNS_ZZMETA.L_STR_MAPPING-METAFIELD = MMMFD_PMNTTRMS. " 支払条件(METAFIELD)MODIFY CH_MAPPING[] FROM L_STR_MAPPING.ENDIF.ENDLOOP.* ソートテーブルCH_MAPPING[]の最初の1件目に強制カーソル指定されるため1件目にダミーレコードを挿入CLEAR L_STR_MAPPING.L_STR_MAPPING-METAFIELD = MMMFD_PMNTTRMS. " 支払条件(METAFIELD)INSERT L_STR_MAPPING INTO CH_MAPPING[] INDEX 1.ENDMETHOD. "IF_EX_ME_GUI_PO_CUST~MAP_DYNPRO_FIELDS*======================================================================================
*DBデータ=>モデル
*======================================================================================METHOD IF_EX_ME_GUI_PO_CUST~TRANSPORT_FROM_MODEL.DATA L_REF_PO_HEAD TYPE REF TO IF_PURCHASE_ORDER_MM. " 参照変数(IF_PURCHASE_ORDER_MM)DATA L_STR_MEPOHEADER TYPE MEPOHEADER. " GET_DATA用 MEPOHEADERDATA L_REF_PO_ITEM TYPE REF TO IF_PURCHASE_ORDER_ITEM_MM. " 参照変数(IF_PURCHASE_ORDER_ITEM_MM)DATA L_STR_MEPOITEM TYPE MEPOITEM. " GET_DATA用 MEPOITEMCASE IM_NAME.* ヘッダWHEN CNS_SCNAME_HEAD.L_REF_PO_HEAD ?= IM_MODEL. " IM_MODELをCASTL_STR_MEPOHEADER = L_REF_PO_HEAD->GET_DATA( ). " IF_PURCHASE_ORDER_MM~GET_DATAでヘッダ項目取得MOVE-CORRESPONDING L_STR_MEPOHEADER TO STR_ZMM0S0130_PBO. " 拡張画面用構造に設定STR_ZMM0S0130_PBO-WAERS_W = L_STR_MEPOHEADER-WAERS.* 明細WHEN CNS_SCNAME_ITEM.L_REF_PO_ITEM ?= IM_MODEL. " IM_MODELをCASTL_STR_MEPOITEM = L_REF_PO_ITEM->GET_DATA( ). " IF_PURCHASE_ORDER_MM~GET_DATAでヘッダ項目取得MOVE-CORRESPONDING L_STR_MEPOITEM TO STR_ZMM0S0131_PBO. " 拡張画面用構造に設定
*WHEN OTHERS." 処理なしENDCASE.ENDMETHOD. "IF_EX_ME_GUI_PO_CUST~TRANSPORT_FROM_MODEL*======================================================================================
*モデル=>DBデータ
*======================================================================================METHOD IF_EX_ME_GUI_PO_CUST~TRANSPORT_TO_MODEL.DATA :L_REF_PO_HEAD TYPE REF TO IF_PURCHASE_ORDER_MM, " 参照変数(IF_PURCHASE_ORDER_MM)L_STR_MEPOHEADER TYPE MEPOHEADER, " GET_DATA用 MEPOHEADERL_REF_PO_ITEM TYPE REF TO IF_PURCHASE_ORDER_ITEM_MM, " 参照変数(IF_PURCHASE_ORDER_ITEM_MM)L_STR_MEPOITEM TYPE MEPOITEM. " GET_DATA用 MEPOITEMCASE IM_NAME.* ヘッダWHEN CNS_SCNAME_HEAD.L_REF_PO_HEAD ?= IM_MODEL. " IM_MODELをCASTL_STR_MEPOHEADER = L_REF_PO_HEAD->GET_DATA( ). " IF_PURCHASE_ORDER_MM~GET_DATAでヘッダ項目取得MOVE-CORRESPONDING STR_ZMM0S0130 TO L_STR_MEPOHEADER. " 拡張画面用構造の値を設定CALL METHOD L_REF_PO_HEAD->SET_DATA( L_STR_MEPOHEADER ). " IF_PURCHASE_ORDER_MM~GET_DATAでヘッダ値更新* 明細WHEN CNS_SCNAME_ITEM.L_REF_PO_ITEM ?= IM_MODEL. " IM_MODELをCASTL_STR_MEPOITEM = L_REF_PO_ITEM->GET_DATA( ). " IF_PURCHASE_ORDER_ITEM_MM~GET_DATAでヘッダ項目取得MOVE-CORRESPONDING STR_ZMM0S0131 TO L_STR_MEPOITEM. " 拡張画面用構造の値を設定CALL METHOD L_REF_PO_ITEM->SET_DATA( L_STR_MEPOITEM ). " IF_PURCHASE_ORDER_ITEM_MM~GET_DATAでヘッダ値更新WHEN OTHERS." 処理なしENDCASE.ENDMETHOD. "IF_EX_ME_GUI_PO_CUST~TRANSPORT_TO_MODEL*======================================================================================
*拡張画面=>モデル
*======================================================================================METHOD IF_EX_ME_GUI_PO_CUST~TRANSPORT_FROM_DYNP.DATA :L_REF_PO_HEAD TYPE REF TO IF_PURCHASE_ORDER_MM, " 参照変数(IF_PURCHASE_ORDER_MM)L_STR_MEPOHEADER TYPE MEPOHEADER, " GET_DATA用 MEPOHEADERL_REF_PO_ITEM TYPE REF TO IF_PURCHASE_ORDER_ITEM_MM, " 参照変数(IF_PURCHASE_ORDER_ITEM_MM)L_STR_MEPOITEM TYPE MEPOITEM. " GET_DATA用 MEPOITEMCASE IM_NAME.* ヘッダWHEN CNS_SCNAME_HEAD.* PAI値受取(ヘッダ)CALL FUNCTION 'Z_MMP008_HEAD01_POP'IMPORTINGF_EP_ZMM0S0130 = STR_ZMM0S0130_PAI. "拡張画面WORK→標準WORKに取得* PBO≠PAIの場合、RE_CHANGED(変更あり)を設定IF STR_ZMM0S0130_PAI <> STR_ZMM0S0130_PBO.STR_ZMM0S0130 = STR_ZMM0S0130_PAI.RE_CHANGED = MMPUR_YES.ELSE." 処理なしENDIF.* 明細WHEN CNS_SCNAME_ITEM.
* PAI値受取(明細)CALL FUNCTION 'Z_MMP008_ITEM01_POP'IMPORTINGF_EP_ZMM0S0131 = STR_ZMM0S0131_PAI.* PBO≠PAIの場合、RE_CHANGED(変更あり)を設定IF STR_ZMM0S0131_PAI <> STR_ZMM0S0131_PBO.STR_ZMM0S0131 = STR_ZMM0S0131_PAI.RE_CHANGED = MMPUR_YES.ELSE." 処理なしENDIF.WHEN OTHERS." 処理なしENDCASE.ENDMETHOD. "IF_EX_ME_GUI_PO_CUST~TRANSPORT_FROM_DYNP*======================================================================================
*モデル=>拡張画面
*======================================================================================METHOD IF_EX_ME_GUI_PO_CUST~TRANSPORT_TO_DYNP.* 画面判定CASE IM_NAME.WHEN CNS_SCNAME_HEAD. " ヘッダ
* PBO値受渡(ヘッダ)CALL FUNCTION 'Z_MMP008_HEAD01_PUSH'EXPORTINGF_IP_ZMM0S0130 = STR_ZMM0S0130_PBO. "標準WORK→拡張画面WORKWHEN CNS_SCNAME_ITEM. " 明細
* PBO値受渡(明細)CALL FUNCTION 'Z_MMP008_ITEM01_PUSH'EXPORTINGF_IP_ZMM0S0131 = STR_ZMM0S0131_PBO.WHEN OTHERS." 処理なしENDCASE.ENDMETHOD. "IF_EX_ME_GUI_PO_CUST~TRANSPORT_TO_DYNP
SE24でBADI(ME_PROCESS_PO_CUST)のIF(IF_EX_ME_PROCESS_PO_CUST)を実装して、変数初期化する。 |
※つまり、BADIを定義しなくても SE24で直ちにIFを利用してクラスを定義して同じメソッドを実装できる。 |
ここまで、実装完了。
補足:正常の場合、画面が定義されてから、BADIの IF_EX_ME_GUI_PO_CUST~SUBSCRIBE.実装されたら 且つ IF_EX_ME_GUI_PO_CUST~MAP_DYNPRO_FIELDS.も実装されて、標準購買伝票に拡張画面が表示されます。表示できない場合、下記定義追加必要。
補足:BAPIコールする場合、BAPIの拡張構造も更新する必要です。
SAP采购订单屏幕BADI增强(实例)相关推荐
- 自定义 SAP 采购订单屏幕
由于这是我的第一篇博客文章,因此我想使用Liquid UI在SAP Easy Access屏幕上向您展示简化的SAP流程.Liquid UI 是一个企业平台,供 SAP 用户创建简化且自动化的 SAP ...
- 【转】SAP采购订单屏幕增强
为采购订单增加一个页标签,在其中放入客户自定义字段, 1. CMOD 增强接口: MM06E005 EXIT_SAPMM06E_006 为子屏幕参数传入出口(抬头) EXIT_SAPMM06E_008 ...
- SAP采购订单税码增强检查
1.SE18查看ME_PROCESS_PO_CUST相关信息 2.SE19创建ME_PROCESS_PO_CUST的BADI实现类 注意类名称定义是按照以下规则: ZCL_IM_ + BADI ...
- 【转】采购订单长文本增强
采购订单长文本增强正式内容: 利用BADI:ME_PROCESS_PO_CUST,做PO长文本的增强. 本例程是在修改PO行项目短文本的时候,让下面的长文本内容=项目短文本. 过程:(省略创建BADI ...
- SAP采购订单科目分配类别P与Q解析
SAP采购订单科目分配类别P与Q解析 在采购单科目分配类别(Account Assignment Category)一栏中有P和Q,都是对项目物资的采购,两者有何区别?我们一起来看一看. 1,首先了解 ...
- SAP 采购订单显示含税价制作方案
SAP 采购订单显示含税价制作方案 轻松解决SAP系统采购信息计量中物料价格不能保存含税价问题 我们在和供应商谈价时,大部分国内供应商的报价都是含税的,然而我们现在在系统中维护采购信息记录时, 只能输 ...
- SAP 采购订单税金抓取方法
SAP 采购订单税金抓取方法: 一.找表字段: 1.在EKKO表里找到采购订单的单据条件号:EKKO-KNUMV 2.在KONV条件(事务数据)表内找到单据条件号:KONV-KNUMV 行项目号:KO ...
- SAP 采购订单的批量修改
前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 现在有一个需求,我们需要冻结一批采购订单,但是由于批量冻结的后果无法预知,我们打算用一个折中的办法. 利用采购订单行项目中 ...
- SAP采购订单创建预付款并删除
采购订单预付款的删除@jettai 在SAP采购订单创建预付款 SAP系统支持创建采购订单的时候,选择预付款,并创建预付款请求. 针对行项目的预付款请求可以在如下图 创建预付款请求 在采购订单创建完毕 ...
最新文章
- maemo环境安装问题和解决方案(ubuntu 10.04)
- python panda读取csv_python pandas 中文件的读写——read_csv()读取文件
- linux命令:ftp
- 云开发技术应用python_云开发技术应用(Python)
- 图片背景虚化_如何用PPT制作图片虚化背景?
- Address already in use: bind JVM端口被占用解决方法
- 2017百度之星资格赛:1003. 度度熊与邪恶大魔王
- swagger注释API详细说明
- Linux入门命令解释(1)
- 苏宁金融一站式API网关演进之路
- Oracle账户被锁定后如何解锁
- 深夜读萧红《呼兰河传》
- 联想E43升级bios激活windows 7
- 文件搜索工具(简单版)
- Java编译报错:无法将类XX中的构造器XX应用到给定类型
- lotus version 0.3.0+git1bfa2311 安装 interopnet
- Python Flask,Jinja2模板,模板中使用特殊变量及函数,闪现信息,get_flashed_messages()
- C++中的自定义函数
- eNSP之简单WLAN拓扑配置
- 影视金曲-爱你一生嫌未够_昆仑奴插曲》