T-Code項目 | T-Code | 附註 |
表格 | ||
ABAP/4 Dictionary maintenance | SE11 | 表格 結構 域 加鎖物件 建立與管理 |
Table view and maintain | SE16 | 表格 View |
Table views maintainer | SM30 | 表格維設產生器 |
Performance Analysis | ST05 | 追蹤畫面上的TABLE名稱 |
程式開發 | ||
ABAP/4 Function Library | SE37 | Function處理器 |
ABAP/4 Editor | SE38 | 程式編輯器 |
Object Browser | SE80 | 元件總覽器 |
Maintain messages | SE91 | 訊息編輯器 |
Maintain Transaction Codes | SE93 | T-Code編輯器 |
Overview of sers | SM04 | 使用者控制清單 |
Display locks | SM12 | 解使用者Lock控制器 |
Batch job monitoring | SM35 | 批次輸入處理器 |
Overview of Processes | SM50 | 程式處理概覽 |
Font Maintenance Bar Code | SE73 | 看Bar Code |
Customizing: Execute Project | SPRO | 進入後台控制 |
Change View "Country Global Parameters" Overview | OY01 | 設定國家別(處理小數與千分位) |
Conditions for Output Control | NACE | output type控制條件 |
Transaction and Screen Variants | SHD0 | 隱藏標準畫面欄位 |
Configuration of RFC Connections | SM59 | |
SAP-Directories | AL11 | 查存放資料至網路資料夾路徑 |
Spool Administration Initial Screen | SPAD | 印表機格式設定 |
SE18 | 建立BADI | |
SE19 | 建立IF | |
RSA1 | ||
UpLoad PIC | SE78 | 圖型上傳 |
Search Messages | SE91 | 查看MESSAGES |
Creat Query Search Report | SQ01 | 建立Query查詢報表 |
BDC | SHDB | 錄制BDC |
系統T-CODE | ||
Transport Organizer | SE09 | Request Display處理器 |
Transport Management System | STMS | 轉程式DEV TO QAS TO PRD |
Legacy System Migration Workbench | LSMW | 舊系統轉至新系統資料 |
Batch Input Session Overview | SM35 | 查看LSMW上傳是否成功 |
SPAU | 查看那些程式上傳蓋掉 | |
效能 | ||
ABAP Runtime Analysis | SE30 | 測式程式效能 |
User List | SM04 | 查看個人花費記憶體資源 |
Workload Monitor | ST03N | 查看程式花費記憶體資源 |
ABAP Runtime Analysis | SE30 | 查程式跑的時間 |
ABAP Runtime Error | ST22 | 查程式跑的Error |
設立權限物件 T-code | ||
User Maintenance | SU01 | 使用者維護 |
User Information System | SUIM | 使用者資訊系統 |
List of Authorization Fields | SU20 | 權限清單 |
Maintant the Authorization Objects | SU21 | 維護權限物件 |
Display Authorization Data for User | SU53 | 查看是否擁有T-CODE權限 |
Role Maintenance | PFCG | 維護規責 |
Authorization Objects By Complex Selection Criteria | S_BCE_68001413 | 尋找權限物件 |
Role Maintenance | PFCG | 規則維護 |
System Measurement | USMM | 人員重覆登入報表 |
Job 排程 | ||
Define Background Job | SM36 | Background |
Creat Planning Job | MC8D | 批次處理:生成計劃 |
Maintant Variant by Job | MC8E | 批次處理:改變計劃 |
NetWeaver | ||
Display and maintain RFC destinations | SM59 | 檢示與維護 RFC 目的地 |
2009年12月13日 星期日
ABAP常用的T-CODE
2009年11月19日 星期四
彈出訊息視窗
在程式編寫時希望在USER對執行某個事件時
回傳一個資訊給USER詢問是否要再向下執行
這時我們可以拋出一個視窗給USER決定與選擇
回傳一個資訊給USER詢問是否要再向下執行
這時我們可以拋出一個視窗給USER決定與選擇
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
TITLEBAR = '確認視窗'
TEXT_QUESTION = '確認是否執行'
START_COLUMN = 25
START_ROW = 6
IMPORTING
ANSWER = L_IO
EXCEPTIONS
TEXT_NOT_FOUND = 1
OTHERS = 2
.
IF L_IO = '1'.
PERFORM TRANSFER_DATA.
ENDIF.
IF L_IO = '2'.
MESSAGE S001(00) WITH '已終止傳送...'.
ENDIF.
2009年11月10日 星期二
BAPI_GOODSMVT_CREATE
庫存盤點在作SCAN BARCODE之後依盤虧盤盈的結果依相同的PLANT與Storage Location BY BATCH 去作311 Movement
使用BAPI_GOODSMVT_CREATE 來處理異動
基本結構為六項:Header、gm_code、gm_head_ret、mat_doc、gm_item、return
REPORT ZBEN_AUTO_GT.************************************************************************* Data type definition segment*************************************************************************HeaderDATA: GM_HEADER LIKE BAPI2017_GM_HEAD_01.*GM_codeDATA: BEGIN OF GM_CODE. INCLUDE STRUCTURE BAPI2017_GM_CODE.DATA: END OF GM_CODE.*GM_head_retDATA: BEGIN OF GM_HEADRET. INCLUDE STRUCTURE BAPI2017_GM_HEAD_RET.DATA: END OF GM_HEADRET.*Mat_docDATA: MAT_DOC LIKE BAPI2017_GM_HEAD_RET-MAT_DOC.*GM_itemDATA: BEGIN OF GM_ITEM OCCURS 100. INCLUDE STRUCTURE BAPI2017_GM_ITEM_CREATE.DATA: END OF GM_ITEM.*Return MsgDATA: BEGIN OF ERRMSG OCCURS 10. INCLUDE STRUCTURE BAPIRET2.DATA: END OF ERRMSG.
************************************************************************* Selection screen definition segment************************************************************************PARAMETERS: P_MATNR LIKE MCHB-MATNR OBLIGATORY.PARAMETERS: P_WERKS LIKE MCHB-WERKS OBLIGATORY.PARAMETERS: P_LGORT LIKE MCHB-LGORT OBLIGATORY.
************************************************************************* Main program entry**************************************************************************HeaderGM_HEADER-PSTNG_DATE = '20091031'. "SY-DATUM.GM_HEADER-DOC_DATE = '20091031'. "SY-DATUM.** IF PACK_NO NE SPACE.* GM_HEADER-REF_DOC_NO = POITEM-PACK_NO "DELIVER NOTE - GR* GM_HEADER-HEADER_TXT = POITEM-PACK_NO " FOR GT** ENDIF.**CodeGM_CODE-GM_CODE = '04'.**ItemGM_ITEM-MATERIAL = ' 2C P 906011A F001'.GM_ITEM-PLANT = 1000.GM_ITEM-STGE_LOC = ' 14A 1'.GM_ITEM-BATCH = ' 5M C1680002'.GM_ITEM-MOVE_TYPE = '311'.GM_ITEM-MVT_IND = ''.GM_ITEM-ENTRY_QNT = 2.GM_ITEM-ENTRY_UOM = 'EA'.GM_ITEM-MOVE_STLOC = ' 1A 01'.GM_ITEM-NO_TRANSFER_REQ = 'X'.APPEND GM_ITEM.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'EXPORTINGGOODSMVT_HEADER = GM_HEADERGOODSMVT_CODE = GM_CODE "Transfer posting* IMPORTING* GOODSMVT_HEADRET = GM_HEADRET* MATERIALDOCUMENT = MAT_DOC* MATDOCUMENTYEAR = TABLESGOODSMVT_ITEM = GM_ITEMRETURN = ERRMSG EXCEPTIONSOTHERS = 1.
IF ERRMSG[] IS INITIAL. REFRESH: GM_ITEM, ERRMSG. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING WAIT = 'X'.ELSE.* MESSAGE = ERRMSG-MESSAGE. EXIT.ENDIF.
2009年11月7日 星期六
ALV自訂工具按鈕控制
於ALV的STATUS SET內新增一個自訂的按鈕設定好圖示與回傳CODE
在EVENT這邊呼叫
並讀取 RT_EVENTS的KEY值為SLIS_EV_USER_COMMAND傳回的CODE
這時如果有值時..於內編寫程式要作那些事件
在EVENT這邊呼叫
並讀取 RT_EVENTS的KEY值為SLIS_EV_USER_COMMAND傳回的CODE
這時如果有值時..於內編寫程式要作那些事件
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = RT_EVENTS.
READ TABLE RT_EVENTS WITH KEY NAME = SLIS_EV_USER_COMMAND
INTO LS_EVENT.
IF SY-SUBRC = 0.
ENDIF.
2009年11月2日 星期一
ALV架構
呼叫前必須先完成TYPE-POOLS與ALV的欄位宣告
再程式輸出時呼叫CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'來完成
再程式輸出時呼叫CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'來完成
*&---------------------------------------------------------------------*
*& Report ZBEN_TEST01
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZBEN_TEST01 .
************************************************************************
* TYPES and TYPE-POOLS *
************************************************************************
TYPE-POOLS: SLIS.
************************************************************************
* Working Area & Internal Tables *
************************************************************************
*ITAB
DATA: BEGIN OF GW_RPT,
EBELN LIKE EKPO-EBELN,
EBELP LIKE EKPO-EBELP,
END OF GW_RPT.
DATA: GT_RPT LIKE GW_RPT OCCURS 0 WITH HEADER LINE.
*ALV
DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
GT_SORTINFO TYPE SLIS_T_SORTINFO_ALV,
GT_EVENTS TYPE SLIS_T_EVENT,
G_REPID TYPE SY-REPID,
L_LAYOUT TYPE SLIS_LAYOUT_ALV,
L_SELFIELD TYPE SLIS_SELFIELD,
SAV_SY_REPID TYPE SY-REPID,
L_PRINT TYPE SLIS_PRINT_ALV,
GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
DATA: BEGIN OF SELTAB OCCURS 0.
INCLUDE STRUCTURE RSPARAMS.
DATA: END OF SELTAB.
************************************************************************
* Selection Screen *
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
PARAMETERS: P_EBELN LIKE EKKO-EBELN OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1.
************************************************************************
* START-OF-SELECTION Event *
************************************************************************
START-OF-SELECTION.
PERFORM GET_DATA.
PERFORM PROCESS_DATA.
PERFORM PRINT_DATA.
************************************************************************
* END-OF-SELECTION Event *
************************************************************************
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
FORM GET_DATA.
SELECT EBELN EBELP FROM EKPO
INTO CORRESPONDING FIELDS OF TABLE GT_RPT
WHERE EBELN = P_EBELN.
ENDFORM. " GET_DATA
*&---------------------------------------------------------------------*
*& Form PROCESS_DATA
*&---------------------------------------------------------------------*
FORM PROCESS_DATA.
ENDFORM. " PROCESS_DATA
*&---------------------------------------------------------------------*
*& Form PRINT_DATA
*&---------------------------------------------------------------------*
FORM PRINT_DATA.
G_REPID = SY-REPID.
PERFORM FIELDCAT_INIT USING GT_FIELDCAT[].
PERFORM SORTINFO_INIT USING GT_SORTINFO[].
PERFORM EVENTS_INIT USING GT_EVENTS[].
PERFORM LAYOUT_INIT USING L_LAYOUT.
PERFORM PRINT_INIT USING L_PRINT.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = G_REPID
IT_FIELDCAT = GT_FIELDCAT[]
IT_SORT = GT_SORTINFO[]
IT_EVENTS = GT_EVENTS
IS_LAYOUT = L_LAYOUT
I_SAVE = 'A'
IS_PRINT = L_PRINT
TABLES
T_OUTTAB = GT_RPT.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " PRINT_DATA
*---------------------------------------------------------------------*
* FORM fieldcat_inite *
*---------------------------------------------------------------------*
FORM FIELDCAT_INIT USING IT_FIELDCATE TYPE SLIS_T_FIELDCAT_ALV.
DATA: ST_FIELDCATE TYPE SLIS_FIELDCAT_ALV.
ST_FIELDCATE-TABNAME = 'IT_RPT'.
ST_FIELDCATE-FIELDNAME = 'EBELN'.
ST_FIELDCATE-SELTEXT_L = '單號'.
ST_FIELDCATE-OUTPUTLEN = 10.
ST_FIELDCATE-KEY = 'X'.
APPEND ST_FIELDCATE TO IT_FIELDCATE.
CLEAR ST_FIELDCATE.
ST_FIELDCATE-TABNAME = 'IT_RPT'.
ST_FIELDCATE-FIELDNAME = 'EBELP'.
ST_FIELDCATE-SELTEXT_L = '項次'.
ST_FIELDCATE-OUTPUTLEN = 10.
ST_FIELDCATE-KEY = 'X'.
APPEND ST_FIELDCATE TO IT_FIELDCATE.
CLEAR ST_FIELDCATE.
ENDFORM.
*---------------------------------------------------------------------*
* FORM sortinfo_init *
*---------------------------------------------------------------------*
FORM SORTINFO_INIT USING IT_SORTINFOE TYPE SLIS_T_SORTINFO_ALV.
DATA: ST_SORTE TYPE SLIS_SORTINFO_ALV.
ENDFORM.
*---------------------------------------------------------------------*
* FORM events_init *
*---------------------------------------------------------------------*
FORM EVENTS_INIT USING RT_EVENTS TYPE SLIS_T_EVENT.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = RT_EVENTS.
READ TABLE RT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE 'TOP_OF_PAGE' TO LS_EVENT-FORM.
MODIFY RT_EVENTS FROM LS_EVENT INDEX SY-TABIX.
ENDIF.
ENDFORM.
*---------------------------------------------------------------------*
* FORM USER_COMMAND *
*---------------------------------------------------------------------*
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
L_SELFIELD = RS_SELFIELD.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form LAYOUT_INIT
*&---------------------------------------------------------------------*
FORM LAYOUT_INIT USING P_L_LAYOUT TYPE SLIS_LAYOUT_ALV.
P_L_LAYOUT-ZEBRA = 'X'.
ENDFORM. " LAYOUT_INIT
*&---------------------------------------------------------------------*
*& Form PRINT_INIT
*&---------------------------------------------------------------------*
FORM PRINT_INIT USING P_L_PRINT TYPE SLIS_PRINT_ALV.
ENDFORM. " PRINT_INIT
2009年10月20日 星期二
VA03 Enhancement Addon Field
想在VA01 VA02 VA03的畫面上加入一個欄位
這時先在TABLE VBAK APPEND一個新的結構
取得Object Key才能接下以下的動作
首先要找到的事情就是「User-Exit」
知道後才能再向下修改....
於前面的文章都已記錄過如何建立Table與Layout畫面了(不重覆介紹)
接下來要在Enhancement的Screen中作Layout 增加新欄位
取得Screen在裏面加入例如 ( Sales Document Header User Exit Header )
生成的程式 於PROCESS BEFORE OUTPUT.作MODULE編寫
程式中需要作控制VA01 VA02是Input模式
VA03則是Display模式
這時先在TABLE VBAK APPEND一個新的結構
取得Object Key才能接下以下的動作
首先要找到的事情就是「User-Exit」
知道後才能再向下修改....
於前面的文章都已記錄過如何建立Table與Layout畫面了(不重覆介紹)
接下來要在Enhancement的Screen中作Layout 增加新欄位
取得Screen在裏面加入例如 ( Sales Document Header User Exit Header )
生成的程式 於PROCESS BEFORE OUTPUT.作MODULE編寫
程式中需要作控制VA01 VA02是Input模式
VA03則是Display模式
case vbak-vbtyp.
when 'C' or 'I' or 'G'.
CASE t180-trtyp.
WHEN 'H' or 'V'. "Create or Change mode
Loop at screen.
If screen-group1 = 'GP1'.
Screen-input = 1.
Modify screen.
else.
Screen-active = 0.
Modify screen.
Endif.
Endloop.
WHEN 'A'. " Display mode
Loop at screen.
If screen-group1 = 'GP1'.
Screen-input = 0.
Modify screen.
else.
Screen-active = 0.
Modify screen.
ENDIF.
ENDLOOP.
ENDCASE.
when others.
Loop at screen.
If Screen-group1 = 'GP1'.
Screen-active = 0.
Modify screen.
ENDIF.
ENDLOOP.
ENdcase.
2009年9月15日 星期二
Bapi Create SO V2
發現 BAPI_SALESORDER_CREATEFROMDATA 建立出來的資料太多限制與事後修改
於是在改用了BAPI_SALESORDER_CREATEFROMDAT2
這部份在Schedule Line 與 Condition有很好的控制
回傳值的部份也比 BAPI_SALESORDER_CREATEFROMDATA 清楚的很多
運用上還可以把長文的部份輸入在內...
但真正控制還是把正確的資訊傳達給 BAPI_SALESORDER_CREATEFROMDAT2
重點分為五項:header、item、Schedule、Condition、Pantner
於是在改用了BAPI_SALESORDER_CREATEFROMDAT2
這部份在Schedule Line 與 Condition有很好的控制
回傳值的部份也比 BAPI_SALESORDER_CREATEFROMDATA 清楚的很多
運用上還可以把長文的部份輸入在內...
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
ORDER_HEADER_IN = ORDER_HEADER_IN
ORDER_HEADER_INX = ORDER_HEADER_INX
SALESDOCUMENTIN = L_SALESDOCUMENT
* testrun = 'X'
IMPORTING
SALESDOCUMENT = L_VBELN
TABLES
RETURN = LI_RETURN
ORDER_ITEMS_IN = ORDER_ITEMS_IN
ORDER_ITEMS_INX = ORDER_ITEMS_INX
ORDER_SCHEDULES_IN = ORDER_SCHEDULES_IN
ORDER_SCHEDULES_INX = ORDER_SCHEDULES_INX
ORDER_PARTNERS = ORDER_PARTNERS
ORDER_CONDITIONS_IN = ORDER_CONDITIONS_IN.
ORDER_CONDITIONS_INX = ORDER_CONDITIONS_INX.
<code>
但真正控制還是把正確的資訊傳達給 BAPI_SALESORDER_CREATEFROMDAT2
重點分為五項:header、item、Schedule、Condition、Pantner
* Sales document type
ORDER_HEADER_IN-DOC_TYPE = WA_OPENSO-AUART.
ORDER_HEADER_IN-SALES_ORG = WA_OPENSO-VKORG.
ORDER_HEADER_IN-DISTR_CHAN = WA_OPENSO-VTWEG.
ORDER_HEADER_IN-DIVISION = WA_OPENSO-SPART.
ORDER_HEADER_IN-SALES_GRP = WA_OPENSO-VKGRP.
ORDER_HEADER_IN-SALES_OFF = WA_OPENSO-VKBUR.
ORDER_HEADER_IN-REQ_DATE_H = WA_OPENSO-VDATU.
ORDER_HEADER_IN-PURCH_NO_C = WA_OPENSO-BSTNK.
ORDER_HEADER_IN-CURRENCY = WA_OPENSO-WAERK.
ORDER_HEADER_IN-PMTGAR_PRO = WA_OPENSO-PMTGAR_PRO.
ORDER_HEADER_IN-DOC_NUM_FI = WA_OPENSO-DOC_NUM_FI.
ORDER_HEADER_IN-INCOTERMS1 = WA_OPENSO-INCO1.
ORDER_HEADER_IN-INCOTERMS2 = WA_OPENSO-INCO2.
APPEND ORDER_HEADER_IN.
****項目資料***************************
ORDER_ITEMS_IN-ITM_NUMBER = WA_OPENSO-POSNR.
ORDER_ITEMS_IN-MATERIAL = WA_OPENSO-MATNR.
ORDER_ITEMS_IN-BATCH = WA_OPENSO-CHARG.
ORDER_ITEMS_IN-PLANT = WA_OPENSO-WERKS.
ORDER_ITEMS_IN-STORE_LOC = WA_OPENSO-LGORT.
ORDER_ITEMS_IN-PURCH_NO_C = WA_OPENSO-PURCH_NO_C.
ORDER_ITEMS_IN-DLVSCHDUSE = WA_OPENSO-DLVSCHDUSE.
APPEND ORDER_ITEMS_IN.
****Schedule Line資料***************************
ORDER_SCHEDULES_IN-ITM_NUMBER = WA_OPENSO-POSNR.
ORDER_SCHEDULES_IN-REQ_DATE = WA_OPENSO-REQ_DATE.
ORDER_SCHEDULES_IN-REQ_QTY = WA_OPENSO-KWMENG.
APPEND ORDER_SCHEDULES_IN.
****CONDITIONS資料***************************
ORDER_CONDITIONS_IN-ITM_NUMBER = WA_OPENSO-POSNR.
ORDER_CONDITIONS_IN-COND_TYPE = 'ZPR0'.
ORDER_CONDITIONS_IN-COND_VALUE = WA_OPENSO-KBETR.
APPEND ORDER_CONDITIONS_IN.
****Partner資料***************************
**賣方 SP
CLEAR ORDER_PARTNERS.
ORDER_PARTNERS-PARTN_ROLE = 'AG'.
ORDER_PARTNERS-PARTN_NUMB = WA_OPENSO-KUNAG.
APPEND ORDER_PARTNERS .
*出貨對象 SH
CLEAR ORDER_PARTNERS.
ORDER_PARTNERS-PARTN_ROLE = 'WE'.
ORDER_PARTNERS-PARTN_NUMB = WA_OPENSO-KUNWE.
APPEND ORDER_PARTNERS.
*"發票收受人 RE
CLEAR ORDER_PARTNERS.
ORDER_PARTNERS-PARTN_ROLE = 'RE'.
ORDER_PARTNERS-PARTN_NUMB = WA_OPENSO-KUNWE.
APPEND ORDER_PARTNERS.
*付款方 PY
CLEAR ORDER_PARTNERS.
ORDER_PARTNERS-PARTN_ROLE = 'RG'.
ORDER_PARTNERS-PARTN_NUMB = WA_OPENSO-KUNRG.
APPEND ORDER_PARTNERS.
*End Customer Z1
CLEAR ORDER_PARTNERS.
ORDER_PARTNERS-PARTN_ROLE = 'Z1'.
ORDER_PARTNERS-PARTN_NUMB = WA_OPENSO-KUNZ1.
APPEND ORDER_PARTNERS.
2009年9月11日 星期五
擔保品到期通知
要建立一個當擔保品額度低於某個值時可以通知負責業務人員
包含一些G/L Accont And S G/L Indicator的部份
流程分析:
1.可至BSID內取得客戶擔保品額度的G/L Accont
將擔保品分為二個暫存區
一個為擔保品額度 另一個為取消額度
將擔保品額度 減去 取消額度
2.至KNVP取得客戶編號回串員工編號
得到員工編號後回串員工電子郵件
3.當擔保品額度過小時寄發郵件給該負責業務人員
不建議發於登入SAP帳號內的業務工作場所(內部郵件)..
應發於員工個人電子郵件信箱(例如Outlook.Note等)
包含一些G/L Accont And S G/L Indicator的部份
流程分析:
1.可至BSID內取得客戶擔保品額度的G/L Accont
將擔保品分為二個暫存區
一個為擔保品額度 另一個為取消額度
將擔保品額度 減去 取消額度
2.至KNVP取得客戶編號回串員工編號
得到員工編號後回串員工電子郵件
3.當擔保品額度過小時寄發郵件給該負責業務人員
不建議發於登入SAP帳號內的業務工作場所(內部郵件)..
應發於員工個人電子郵件信箱(例如Outlook.Note等)
2009年9月10日 星期四
特性值
我用了二個方法都可以取得我想要的值
尋找方法由AUSP-OBJEK = MCH1-CUOBJ_BM 取得AUSP-ATWRT (特性值)
Table:MCH1
1. TABLE INOB中 INOB-OBTAB = MCH1(看TABLE而定)
2. INOB-CUOBJ = MCH1-CUOBJ_BM
3. 呼叫Function的key值取得INOB-OBJEK = MCH1-MATNR + MCH1-CHARG (MATNR要補空格)
2009年9月1日 星期二
BAPI Create SO
以Excel建入好初始資料後整批開立
這時發現所有的輸入條件都有key的情況下就是無法開立SO單
經查證後為Excel上傳格式的問題..這部份要特別小心
我呼叫BAPI_SALESORDER_CREATEFROMDATA來完成這項工作
但在使用這支BAPI時發生了一個小問題...
後來進Debug模式查後發現在Partner的KUNNR並無補0造成無法開立SO單解決的方法為在Excel上傳時務必以Type C上傳至程式減少錯誤發生
在呼叫BAPI時最好能先查看BAPI內的TYPE是宣告什麼
2009年8月12日 星期三
建立Customer Account Group
如何在T-CODE:VD01下建立一組新的Account Group
T-CODE:OVT0
1.進入後 New Entries 輸入Account Group and Name
2.在Tab General Data中 選擇輸入的Number Range
3.在Sales And Distribution Data選擇PartnDet.Proc.的Partner Determination Procedure
4.按下儲存作建立便完成了
這時在VD01下的Account Group的下拉式選單中就有新的一組Account Group
輸入要建立的Customer編碼
接下來的部份是設定該Account Group 屬於那個Sales Organization、Distribution Channel、Division
完成整個Customer:General Data
T-CODE:OVT0
1.進入後 New Entries 輸入Account Group and Name
2.在Tab General Data中 選擇輸入的Number Range
3.在Sales And Distribution Data選擇PartnDet.Proc.的Partner Determination Procedure
4.按下儲存作建立便完成了
這時在VD01下的Account Group的下拉式選單中就有新的一組Account Group
輸入要建立的Customer編碼
接下來的部份是設定該Account Group 屬於那個Sales Organization、Distribution Channel、Division
完成整個Customer:General Data
2009年8月6日 星期四
貨齡與庫存計算
先前導入某家的案子作到「每日庫存計算與最久貨齡日期與數量的計算」
當初導入為每日自動申請物料請購單資料交換
當某些廠商料號數量不足時會與某個廠商有一個EDI文件交換
自動將資料傳輸給予對方廠商...
但SAP的系統庫存值存入Table是以異動後的月作儲存
要計算到本月當日 又不便把物料主檔內的資料全部取出
造成程式運算過久與系統資料太占內存
解決流程:
1.每日庫存計算
可由MBEW取得最後一次異動月庫存量來得到本月異動前庫存
再加減本年度月份的物料文件去計算出 每日庫存值
2.最久貨齡日期與數量
要建立二個暫存區
一個為存放物料文件稱作A 另一個為該物料的最久庫存量暫時稱為B
要先由物料主檔取得該物料的最久庫存量存放至B
然後去滾算例年來的物料文件的負向異動去減B數量
當B - A < 0時 開始加 上 A的正向異動文件
直到A所有的負向文件都加文時...就EXIT跳出LOOP
這時取到得值就是該料號的最久庫存日期與數量
當初導入為每日自動申請物料請購單資料交換
當某些廠商料號數量不足時會與某個廠商有一個EDI文件交換
自動將資料傳輸給予對方廠商...
但SAP的系統庫存值存入Table是以異動後的月作儲存
要計算到本月當日 又不便把物料主檔內的資料全部取出
造成程式運算過久與系統資料太占內存
解決流程:
1.每日庫存計算
可由MBEW取得最後一次異動月庫存量來得到本月異動前庫存
再加減本年度月份的物料文件去計算出 每日庫存值
2.最久貨齡日期與數量
要建立二個暫存區
一個為存放物料文件稱作A 另一個為該物料的最久庫存量暫時稱為B
要先由物料主檔取得該物料的最久庫存量存放至B
然後去滾算例年來的物料文件的負向異動去減B數量
當B - A < 0時 開始加 上 A的正向異動文件
直到A所有的負向文件都加文時...就EXIT跳出LOOP
這時取到得值就是該料號的最久庫存日期與數量
2009年7月3日 星期五
2009年5月10日 星期日
SD相關名詞解釋
SD模組名詞解釋:
======================================================================
Available To Promice check 可用量查核
bill-to party 發票對象
Bonded Warehouse 保稅倉庫
Configured To Order 客戶化生產
delayed delivery 延期交貨
Delivery 交貨
Delivery Note 提貨單
delivery scheduling 交貨排程
distribution channel 銷售通道
Divisions 部門
document flow 檔流程
Electronic Data Interchange 電子資料交換
Forecast 預測
forwarding agent 貨運代理
Free Of Charge 免費
Goods Issue 出貨
inquiry 詢價
Loading point 裝載點
Plan Independent Requirement 獨立需求
packing 裝貨
Partial delivery 分批交貨
partner 合貨人
payer 付款人
picking 撿貨
pricing conditions 價格
quotations 報價單
Re-order Point 重定貨點
Request for Quotation 詢價單
Return Material Authorization 退料確認
Sales and Distribution 分銷
sales area 銷售區域
sales documents 銷售文檔
Sales Information System 銷售資訊系統
Sales Order 訂單
sales organizations 銷售組織
schedule line 專案清單種類
scheduling agreement 計劃性合約
shipping 出貨
shipping point 交貨點
Special Order Request 特殊訂單需求
Shipping units 交貨計量單位
ship-to party 交貨對象
sold-to party 買方
surcharges/discounts 追加/折扣
Work In Process 在製品
銷售相關的組織結構:
======================================================================
1銷售組織Sales organization
2分銷管道Distribution channel
3產品組Division
4銷售區域Sales area
5銷售辦公室Sales office
6銷售組Sales group
7銷售人員Salesperson
8工廠Plant
9庫位Storage location
銷售相關的組織結構:
1銷售組織Sales organization
銷售組織:
一個銷售組織代表一個合法的銷售實體
一個銷售組織只能分配給一個公司代碼(一個公司代碼可以有多個銷售組織)
一個銷售組織可以分配給多個工廠
每個銷售組織有自己的主資料,包括客戶主資料、物料主資料以及條件記錄
2分銷管道Distribution channel
分銷管道:
在一個銷售組織中,客戶可以通過一個或多個分銷管道獲得服務
可以為銷售組織和分銷管道的組合定義不同的主資料
3產品組Division
產品組:
對某一產品組,可以執行統計分析或制定市場戰略
4銷售區域Sales area
銷售區域:
銷售區域是 銷售組織/分銷管道/產品組 的組合
銷售訂單(Sales order),交貨單(Delivery)
開票(Billing)都分配到某一銷售區域
所有的銷售流程都發生在某一特定的銷售區域
相關的主資料經常維護在銷售區域層
應該儘量保持銷售區域組織結構越簡單越好
5銷售辦公室Sales office
銷售辦公室:
銷售辦公室可以分配給一個或多個銷售區域
6銷售組Sales group
銷售組:
可為每一個產品組或分銷管道定義一個銷售組
銷售組分配給銷售辦公室
7銷售人員Salesperson
銷售人員:
一個銷售組包括一定數量的銷售員。
8工廠Plant
工廠、庫位:
每個工廠只能分配一個唯一的公司代碼
對每一個交貨給客戶的工廠,必須在SD的配置中將它定義為
delivering plant;在銷售流程中,delivering plant
首先需要check庫存,然後才提供交付
9庫位Storage location
分配銷售組織和工廠:
一個銷售組織可分配多個工廠,一個工廠可分配多個銷售組織(多對多關係)
銷售組織還可以分配跨公司代碼的工廠
學習參考引用來自於http://space.itpub.net/11037
======================================================================
Available To Promice check 可用量查核
bill-to party 發票對象
Bonded Warehouse 保稅倉庫
Configured To Order 客戶化生產
delayed delivery 延期交貨
Delivery 交貨
Delivery Note 提貨單
delivery scheduling 交貨排程
distribution channel 銷售通道
Divisions 部門
document flow 檔流程
Electronic Data Interchange 電子資料交換
Forecast 預測
forwarding agent 貨運代理
Free Of Charge 免費
Goods Issue 出貨
inquiry 詢價
Loading point 裝載點
Plan Independent Requirement 獨立需求
packing 裝貨
Partial delivery 分批交貨
partner 合貨人
payer 付款人
picking 撿貨
pricing conditions 價格
quotations 報價單
Re-order Point 重定貨點
Request for Quotation 詢價單
Return Material Authorization 退料確認
Sales and Distribution 分銷
sales area 銷售區域
sales documents 銷售文檔
Sales Information System 銷售資訊系統
Sales Order 訂單
sales organizations 銷售組織
schedule line 專案清單種類
scheduling agreement 計劃性合約
shipping 出貨
shipping point 交貨點
Special Order Request 特殊訂單需求
Shipping units 交貨計量單位
ship-to party 交貨對象
sold-to party 買方
surcharges/discounts 追加/折扣
Work In Process 在製品
銷售相關的組織結構:
======================================================================
1銷售組織Sales organization
2分銷管道Distribution channel
3產品組Division
4銷售區域Sales area
5銷售辦公室Sales office
6銷售組Sales group
7銷售人員Salesperson
8工廠Plant
9庫位Storage location
銷售相關的組織結構:
1銷售組織Sales organization
銷售組織:
一個銷售組織代表一個合法的銷售實體
一個銷售組織只能分配給一個公司代碼(一個公司代碼可以有多個銷售組織)
一個銷售組織可以分配給多個工廠
每個銷售組織有自己的主資料,包括客戶主資料、物料主資料以及條件記錄
2分銷管道Distribution channel
分銷管道:
在一個銷售組織中,客戶可以通過一個或多個分銷管道獲得服務
可以為銷售組織和分銷管道的組合定義不同的主資料
3產品組Division
產品組:
對某一產品組,可以執行統計分析或制定市場戰略
4銷售區域Sales area
銷售區域:
銷售區域是 銷售組織/分銷管道/產品組 的組合
銷售訂單(Sales order),交貨單(Delivery)
開票(Billing)都分配到某一銷售區域
所有的銷售流程都發生在某一特定的銷售區域
相關的主資料經常維護在銷售區域層
應該儘量保持銷售區域組織結構越簡單越好
5銷售辦公室Sales office
銷售辦公室:
銷售辦公室可以分配給一個或多個銷售區域
6銷售組Sales group
銷售組:
可為每一個產品組或分銷管道定義一個銷售組
銷售組分配給銷售辦公室
7銷售人員Salesperson
銷售人員:
一個銷售組包括一定數量的銷售員。
8工廠Plant
工廠、庫位:
每個工廠只能分配一個唯一的公司代碼
對每一個交貨給客戶的工廠,必須在SD的配置中將它定義為
delivering plant;在銷售流程中,delivering plant
首先需要check庫存,然後才提供交付
9庫位Storage location
分配銷售組織和工廠:
一個銷售組織可分配多個工廠,一個工廠可分配多個銷售組織(多對多關係)
銷售組織還可以分配跨公司代碼的工廠
學習參考引用來自於http://space.itpub.net/11037
2009年5月6日 星期三
2009年3月14日 星期六
AutoMail
呼叫這個 SO_NEW_DOCUMENT_SEND_API1 來達成寄送 Excel
在處理的過程依設定的不同,要注意Unicode的名稱與抬頭
有了可寄送檔案的方法後
還需要有一個接寄送給誰的準則
可由 SO_DLI_LIST_READ_XDL 來取得設定好的Mail Group
接著由 SO_DLI_READ 處理傳送Maril Gropu中的Email Account的方法...
並設定寄送Mail的主旨
在處理的過程依設定的不同,要注意Unicode的名稱與抬頭
有了可寄送檔案的方法後
還需要有一個接寄送給誰的準則
可由 SO_DLI_LIST_READ_XDL 來取得設定好的Mail Group
接著由 SO_DLI_READ 處理傳送Maril Gropu中的Email Account的方法...
並設定寄送Mail的主旨
2009年3月6日 星期五
BOM T-Code、Table、Function
T-Code: CS03
Table: MAST、STKO、STPO
Function:
Table: MAST、STKO、STPO
Function:
展開與特性相關的特定款號的BOM | CS_BOM_EXPL_ KND_V1 |
只展開BOM的涵數 | CS_BOM_EXPL_MAT_V2 |
反查BOM | CS_WHERE_USED_MAT |
2009年1月27日 星期二
查星期幾
在某些情況下USER希望系統直接帶出某一天是星期幾?
這是自已編寫運算有28 29 30 31的天數月份不易計算
此時可以呼叫一個Function來達成
這是自已編寫運算有28 29 30 31的天數月份不易計算
此時可以呼叫一個Function來達成
CALL FUNCTION 'DAY_IN_WEEK'
EXPORTING
datum = sy-datum
IMPORTING
WOTNR = c.
2009年1月26日 星期一
金額外顯
在SAP的金額與幣別有不同於一般的儲存方式
在不同的幣別時會有不同的轉換率
這時在SD或是FI的部份常常會用的到金額欄位就必須轉換
可用一個Call Function來達成單位的轉換
在不同的幣別時會有不同的轉換率
這時在SD或是FI的部份常常會用的到金額欄位就必須轉換
可用一個Call Function來達成單位的轉換
*&---------------------------------------------------------------------*
*& Form GET_CURRENCY
*&---------------------------------------------------------------------*
FORM GET_CURRENCY USING P_WAERS
CHANGING P_FACTOR.
CALL FUNCTION 'CURRENCY_CONVERTING_FACTOR'
EXPORTING
CURRENCY = P_WAERS
IMPORTING
FACTOR = P_FACTOR
EXCEPTIONS
TOO_MANY_DECIMALS = 1
OTHERS = 2.
ENDFORM. " GET_CURRENCY
2009年1月24日 星期六
庫存By Batch轉換數量與價格
CALL FUNCTION 'MURC_ALL_BATCH_FACTORS_NEW'
EXPORTING
if_matnr = mkopf-matnr
IF_KZDCH = chargen_ebene
IF_MEINS = mkopf-basme
if_meinh = if_meinh1
tables
it_sel_charg = ms_charg_bestand[]
it_sel_werks = ms_werks_bestand[]
it_mcha_objek = gt_mcha_objek
it_mch1_objek = gt_mch1_objek
it_objek = gt_objek
et_conv_tab = lt_conv_tab
EXCEPTIONS
NOT_FOUND = 1
NO_BATCH_CONVERSION = 2
OTHERS = 3.
訂閱:
文章 (Atom)