Thursday, December 24, 2009

MM中可用的BAPI

BAPI_MATERIAL_SAVEDATA 建立/更改物料主檔
BAPI_OBJCL_CREATE 建立/更改物料主檔分類
BAPI_OBJCL_CHANGE 建立/更改物料主檔分類
CLMM_MAINTAIN_CLASSIFICATIONS 批量建立/更改物料主檔分類
CLAF_CLASSIFICATION_OF_OBJECTS 顯示物料主檔分類特性值
BAPI_MATERIAL_EXISTENCECHECK 檢查物料主檔是否存在
BAPI_MATERIAL_GETLIST 顯示物料主檔明細

BAPI_PO_CREATE1 建立采購單
BAPI_PO_CHANGE 更改采購單
BAPI_PO_GETDETAIL 顯示采購單明細
BAPI_PO_RELEASE 核發采購單
BAPI_REQUISITION_CREATE 建立請購單
BAPI_REQUISITION_CHANGE 更改請購單
BAPI_REQUISITION_GETDETAIL 顯示請購單明細
BAPI_REQUISITION_RELEASE_GEN 核發請購單


BAPI_CHARACT_CREATE 建立特性
BAPI_CHARACT_CHANGE 更改特性
BAPI_CHARACT_DELETE 刪除特性
BAPI_CHARACT_RENAME 重新命名特性
BAPI_CHARACT_GETDETAIL 讀取特性屬性
BAPI_CHARACT_ADDLONGTEXT 設定特性或數值的長文
BAPI_CHARACT_REMOVELONGTEXT 刪除特性或數值的長文
BAPI_CHARACT_GETLONGTEXT 讀取數值的特性長文
CARD_CHARACTERISTIC_READ 顯示特性值的值列表

BAPI_CLASS_CREATE 建立類別
BAPI_CLASS_CHANGE 變更類別
BAPI_CLASS_DELETE 刪除類別
BAPI_CLASS_GETDETAIL 讀取類別資訊(取分類下特性及特性值)
BAPI_CLASS_EXISTENCECHECK 檢查物件存在性

BAPI_VENDOR_GETDETAIL 顯示供應商明細

BAPI_VENDOR_EXISTENCECHECK 檢查存在性
BAPI_MATERIALGROUP_GET_LIST 讀取物料群組/物料群組說明


BAPI_GOODSMVT_CREATE 過帳物料異動
BAPI_GOODSMVT_CANCEL 沖帳(取消)物料異動
BAPI_GOODSMVT_GETDETAIL 顯示物料異動明細
BAPI_GOODSMVT_GETITEMS 顯示物料文件的明細清單

Labels:

BAPI_GOODSMVT_CREATE FOR MB1B

*&---------------------------------------------------------------------*
*& Report ZMMBAPI_MB1B
*&
*&---------------------------------------------------------------------*
*&
*& author : kevin su 2009/12/24
*&---------------------------------------------------------------------*
* GMCODE Table T158G
* 01 - MB01 - Goods Receipts for Purchase Order
* 02 - MB31 - Goods Receipts for Prod Order
* 03 - MB1A - Goods Issue
* 04 - MB1B - Transfer Posting
* 05 - MB1C - Enter Other Goods Receipt
* 06 - MB11
*
* Domain: KZBEW - Movement Indicator
* Goods movement w/o reference
* B - Goods movement for purchase order
* F - Goods movement for production order
* L - Goods movement for delivery note
* K - Goods movement for kanban requirement (WM - internal only)
* O - Subsequent adjustment of "material-provided" consumption
* W - Subsequent adjustment of proportion/product unit material
*
REPORT ZMMBAPI_MB1B.

TABLES:mseg, mkpf, rm07m, t158b,t001l, msegk.

** upload excel file to internal table
TYPE-POOLS: truxs.
DATA: it_raw TYPE truxs_t_text_data.
** bapi variable
DATA: mat_doc LIKE bapi2017_gm_head_ret-mat_doc.
DATA:save_code LIKE sy-ucomm,
ok_code LIKE sy-ucomm,
loc_msg(50),
gmnga LIKE afru-gmnga,
mtsnr LIKE rm07m-mtsnr,
errflag..

DATA:BEGIN OF gt_afpo OCCURS 0.
INCLUDE STRUCTURE afpo.
DATA:END OF gt_afpo.

DATA:gmhead LIKE bapi2017_gm_head_01.

DATA: BEGIN OF gmcode.
INCLUDE STRUCTURE bapi2017_gm_code.
DATA: END OF gmcode.

DATA: BEGIN OF mthead.
INCLUDE STRUCTURE bapi2017_gm_head_ret.
DATA: END OF mthead.

DATA: BEGIN OF itab OCCURS 100.
INCLUDE STRUCTURE bapi2017_gm_item_create.
DATA: END OF itab.

DATA: BEGIN OF errmsg OCCURS 10.
INCLUDE STRUCTURE bapiret2.
DATA: END OF errmsg.

** end bapi variable **

data: begin of pcitab occurs 100,
upd_sta(1), "Update Status
move_type(3), "Movement Type
plant(4), "Plant
material(18), "Material Number
entry_qnt(13), "Quantity
batch(10), "Batch
end of pcitab.

** excel file defination **

types: BEGIN OF t_datatab,
MATERIAL type bapi2017_gm_item_create-material, "料號
PLANT type bapi2017_gm_item_create-plant, "工廠
STGE_LOC type bapi2017_gm_item_create-stge_loc, "儲位
* STCK_TYPE type bapi2017_gm_item_create-stck_type, "庫存類型
SPEC_STOCK type bapi2017_gm_item_create-spec_stock, "特殊庫存指示碼
SALES_ORD type bapi2017_gm_item_create-sales_ord, "銷售訂單
S_ORD_ITEM type bapi2017_gm_item_create-s_ord_item, "訂單項目
ENTRY_QNT type bapi2017_gm_item_create-entry_qnt, "數量
ENTRY_UOM type bapi2017_gm_item_create-entry_uom, "單位
MOVE_MAT type bapi2017_gm_item_create-move_mat, "料號
MOVE_PLANT type bapi2017_gm_item_create-move_plant, "工廠
MOVE_STLOC type bapi2017_gm_item_create-move_stloc, "儲位
MOVE_BATCH type bapi2017_gm_item_create-move_batch, "批次
MOVE_VAL_TYPE type bapi2017_gm_item_create-move_val_type, "評價類型
MVT_IND type bapi2017_gm_item_create-mvt_ind, "異動指示碼
VAL_SALES_ORD type bapi2017_gm_item_create-val_sales_ord,
VAL_S_ORD_ITEM type bapi2017_gm_item_create-val_s_ord_item,
MOVE_TYPE type bapi2017_gm_item_create-move_type, "異動類型
BATCH type bapi2017_gm_item_create-batch, "批次號碼
END OF t_datatab.

*內表

DATA: itabXLS TYPE STANDARD TABLE OF t_datatab WITH HEADER LINE,
             wa_itab TYPE t_datatab.

selection-screen begin of block b1 with frame title text-001.
PARAMETERS: p_bldat type mkpf-bldat default sy-datum.
PARAMETERS: p_budat type mkpf-budat default sy-datum.
PARAMETERS: p_file TYPE rlgrap-filename.
parameters: e_file like rlgrap-filename default
'c:\sapdata\gdsmvterror.txt'.
selection-screen end of block b1.

* At selection screen

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
field_name = 'P_FILE'
IMPORTING
file_name = p_file.

*

INITIALIZATION.

gmcode-gm_code = '04'. " for MB1B
gmhead-pstng_date = p_bldat. "mkpf-bldat.
gmhead-doc_date = p_budat. "mkpf-budat.
gmhead-pr_uname = sy-uname.
*
start-of-selection.

perform get_data.

loop at itabXLS.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = itabXLS-material
IMPORTING
OUTPUT = itabXLS-material.

if itabXLS-sales_ord is not initial.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = itabXLS-sales_ord
IMPORTING
OUTPUT = itabXLS-sales_ord.
endif.

itabXLS-move_type = '309'.
itabXLS-mvt_ind = ''.
itabXLS-move_mat = itabXLS-material.
itabXLS-move_plant = 'TTW2'.
itabXLS-batch = itabXLS-move_batch.
itabXLS-val_sales_ord = itabXLS-sales_ord.
itabXLS-val_s_ord_item = itabXLS-s_ord_item.
MOVE-CORRESPONDING itabXLS TO itab.
MOVE-CORRESPONDING itabXLS TO pcitab.

append pcitab.
APPEND itab.

endloop.
loop at itab.
       write : / itab-material, itab-move_type, itab-move_plant,itab-entry_qnt.
endloop.

perform pass_data.
*
end-of-selection.
*
FORM PASS_DATA.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
goodsmvt_header = gmhead
goodsmvt_code = gmcode
IMPORTING
goodsmvt_headret = mthead
materialdocument = mat_doc
TABLES
goodsmvt_item = itab
return = errmsg.
**

clear errflag.
loop at errmsg.
if errmsg-type eq 'E'.
   write:/'Error in function', errmsg-message.
   errflag = 'X'.
else.
   write:/ errmsg-message.
endif.
endloop.

if errflag is initial.
  commit work and wait.
if sy-subrc ne 0.
   write:/ 'Error in updating'.
   exit.
else.
  write:/ mthead-mat_doc, mthead-doc_year.
  perform upd_sta.
endif.
endif.

*************
* CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
* EXPORTING
* wait = 'X'.
ENDFORM.

*********

FORM get_data .
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
* I_FIELD_SEPERATOR =
i_line_header = 'X' " include header
i_tab_raw_data = it_raw " WORK TABLE
i_filename = p_file
TABLES
i_tab_converted_data = itabXLS[] "ACTUAL DATA
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.

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. " get_data

*---------------------------------------------------------------------*
* FORM UPD_STA *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form upd_sta.
loop at pcitab.
pcitab-upd_sta = 'X'.
modify pcitab.
endloop.

call function 'WS_DOWNLOAD'
exporting
filename = e_file
filetype = 'DAT'
* IMPORTING
* FILELENGTH =
tables
data_tab = pcitab
* EXCEPTIONS
* FILE_OPEN_ERROR = 1
* FILE_READ_ERROR = 2
* NO_BATCH = 3
* GUI_REFUSE_FILETRANSFER = 4
* INVALID_TYPE = 5
* OTHERS = 6
endform.

Labels:

Saturday, December 05, 2009



含包待放的太陽花(Canno 500D初體驗)

Thursday, January 12, 2006

明細帳

明細帳..
 在sap系統中,有所謂的明細分類帳報表可以使用嗎?還是要外掛程式上去呢?fbl3n可以使用,但還需自行做整理,它無法將實帳戶和虛帳戶一起抓出… 1.在SAP系統,客戶、供應商與固定資產都是屬於明細分類帳,所以只要是此三模組的報表都算是你所謂的明細分類帳報表2.FBL3N可以點一個長的像魔術方塊的按鈕去修改畫面的格式(前提是你有操作的權限),如果操作的欄位不夠,還可以去IMG新增,包括客戶代碼、供應商代碼...等,這樣就可以讓明細表同時顯示客戶代碼與對應總帳編號了,不知這樣是否有回答到你的問題呢?

因為會計師查帳時,需要提供各科目的明細,在fbl3n中實帳戶與虛帳戶需要另外抓取,因為實帳戶所需要的金額要包含期初金額,也就是去年的金額(open item),虛帳戶則是今年的金額(clear item),所以user需要將實、虛帳戶另外下載再做合併,有點麻煩,所以才想知道有沒有不需要做整理就可直接下載的報表~~