SAP FICO 创建修改会计科目 GL_ACCT_MASTER_SAVE
本人诚心接ABAP远程开发任务,价格公道,有需要的联系我,欢迎个人,甲方爸爸,乙方私信联系。
客户要求,SAP与OA对接,用户通过OA创建和修改会计科目
BAPI:GL_ACCT_MASTER_SAVE
DATA: is_import TYPE zfis_oa_subject_create_import.
DATA: es_export TYPE zfis_oa_subject_create_export.
DATA: ls_account_coa TYPE glaccount_coa,
ls_account_coa_keyy TYPE glaccount_coa_key,
ls_account_coa_data TYPE glaccount_coa_data,
ls_account_coa_info TYPE glaccount_coa_info,
lt_account_names TYPE glaccount_name_table,
ls_account_names TYPE glaccount_name,
ls_account_names_keyy TYPE glaccount_name_key,
ls_account_names_data TYPE glaccount_name_data,
lt_account_ccodes TYPE glaccount_ccode_table,
ls_account_ccodes TYPE glaccount_ccode,
ls_account_ccodes_keyy TYPE glaccount_ccode_key,
ls_account_ccodes_data TYPE glaccount_ccode_data,
ls_account_ccodes_info TYPE glaccount_ccode_info,
ls_account_carea TYPE glaccount_carea,
ls_account_carea_keyy TYPE glaccount_carea_key,
ls_account_carea_data TYPE glaccount_carea_data,
ls_account_carea_info TYPE glaccount_carea_info,
lt_account_carea TYPE glaccount_carea_table,
lt_return TYPE TABLE OF bapiret2 WITH HEADER LINE,
ls_return TYPE bapiret2,
lv_action TYPE char1,
lv_message TYPE char255,
ls_fromto TYPE glaccount_carea_fromto.
CASE is_import-ifopt. "此处为OA 传来的标识符 C 表示创建 M 表示修改
WHEN 'C'.
lv_action = 'I'.
lv_message = '会计科目创建成功'.
WHEN 'M'.
lv_action = 'U'.
lv_message = '会计科目修改成功'.
WHEN OTHERS.
ENDCASE.
IF is_import-rev01 = 'A'.
*--------------------------------------------------------------------*
ls_account_coa_keyy-ktopl = is_import-ktopl."帐目表
ls_account_coa_keyy-saknr = is_import-saknr."总账科目
ls_account_coa_data-ktoks = is_import-ktoks."总帐科目组
ls_account_coa_data-glaccount_type = is_import-glaccount_type. "总账科目类型
IF is_import-glaccount_type = 'X'.
ls_account_coa_data-xbilk = 'X'. "标志: 此科目是资产负债表科目吗?
ENDIF.
IF is_import-glaccount_type = 'S'
OR is_import-glaccount_type = 'N'
OR is_import-glaccount_type = 'P'.
ls_account_coa_data-gvtyp = 'X'. "损益报表科目类型
ENDIF.
ls_account_coa_info-erdat = sy-datum. "记录创建日期
ls_account_coa_info-ernam = sy-uname. "创建对象的人员名称
ls_account_coa_info-sakan = is_import-saknr. "总账科目
ls_account_coa-action = lv_action. "数据记录活动:I/插入;U/修改;D/删除
ls_account_coa-keyy = ls_account_coa_keyy.
ls_account_coa-data = ls_account_coa_data.
ls_account_coa-info = ls_account_coa_info.
*--------------------------------------------------------------------*
ls_account_names_keyy-ktopl = is_import-ktopl. "帐目表
ls_account_names_keyy-saknr = is_import-saknr. "总账科目
ls_account_names_keyy-spras = sy-langu. "语言代码
ls_account_names_data-txt20 = is_import-txt20. "总帐科目名称
ls_account_names_data-txt50 = is_import-txt50. "总账科目长文本
ls_account_names-action = lv_action. "数据记录活动:I/插入;U/修改;D/删除
ls_account_names-keyy = ls_account_names_keyy.
ls_account_names-data = ls_account_names_data.
APPEND ls_account_names TO lt_account_names.
ENDIF.
*--------------------------------------------------------------------*
ls_account_ccodes_keyy-bukrs = is_import-bukrs. "公司代码
IF is_import-rev01 = 'A'.
ls_account_ccodes_keyy-saknr = is_import-saknr. "总账科目
ELSE.
ls_account_ccodes_keyy-saknr = is_import-rev02. "总账科目
ENDIF.
ls_account_ccodes_data-waers = is_import-waers. "货币
ls_account_ccodes_data-xsalh = is_import-xsalh. "是否仅限以本币记的余额
ls_account_ccodes_data-xmwno = is_import-xmwno. "允许含/不含税过账
ls_account_ccodes_data-mwskz = is_import-mwskz. "税务类型
ls_account_ccodes_data-mitkz = is_import-mitkz. "统驭科目的科目类型
ls_account_ccodes_data-xopvw = is_import-xopvw. "未清项目管理
ls_account_ccodes_data-zuawa = is_import-zuawa. "排序码
ls_account_ccodes_data-fstag = is_import-fstag. "字段状态组
ls_account_ccodes_data-xintb = is_import-xintb. "只能自动过账
ls_account_ccodes_data-xmitk = is_import-xmitk. "统驭科目是否准备就绪可以输入
"ls_account_ccodes_data-kokrs = is_import-kokrs. "成本控制范围
ls_account_ccodes_info-erdat = sy-datum."记录创建日期
ls_account_ccodes_info-ernam = sy-uname."创建对象的人员名称
ls_account_ccodes-action = lv_action. "数据记录活动:I/插入;U/修改;D/删除
ls_account_ccodes-keyy = ls_account_ccodes_keyy.
ls_account_ccodes-data = ls_account_ccodes_data.
ls_account_ccodes-info = ls_account_ccodes_info.
APPEND ls_account_ccodes TO lt_account_ccodes.
*--------------------------------------------------------------------*
IF is_import-kokrs IS INITIAL .
is_import-kokrs = 'RT00'.
ENDIF.
ls_account_carea_keyy-kokrs = is_import-kokrs. "控制范围
ls_account_carea_keyy-saknr = is_import-saknr. "总账科目
ls_account_carea_data-katyp = is_import-katyp.
ls_account_carea_info-ersda = sy-datum."创建日期
ls_account_carea_info-usnam = sy-uname."创建人
ls_account_carea-action = lv_action."数据记录活动:I/插入;U/修改;D/删除
ls_account_carea-keyy = ls_account_carea_keyy.
ls_account_carea-data = ls_account_carea_data.
ls_account_carea-info = ls_account_carea_info.
CLEAR ls_fromto.
"添加开始和截止日期
ls_fromto-datab = '19000101'.
ls_fromto-datbi = '99991231'.
ls_account_carea-fromto = ls_fromto.
APPEND ls_account_carea TO lt_account_carea.
CALL FUNCTION 'GL_ACCT_MASTER_SAVE'
EXPORTING
* testmode = ''
* NO_SAVE_AT_WARNING =
no_authority_check = ''
store_data_only = ''
TABLES
account_names = lt_account_names
* account_keywords = gt_glkeywords
account_ccodes = lt_account_ccodes
account_careas = lt_account_carea
return = lt_return
CHANGING
account_coa = ls_account_coa.
READ TABLE lt_return WITH KEY type = 'E'.
IF sy-subrc = 0.
LOOP AT lt_return INTO ls_return WHERE type = 'E' .
CONCATENATE es_export-ifmsg ls_return-message INTO es_export-ifmsg." 错误消息
ENDLOOP.
es_export-busno = is_import-saknr."会计科目
es_export-status = 'E'. "状态
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
es_export-busno = is_import-saknr."会计科目
es_export-ifmsg = lv_message. "消息
es_export-status = 'S'. "状态
ENDIF.
post SAP-Garson
原文链接:https://blog.csdn.net/IamRunjiang/article/details/113111619文章来自于网络,如果侵犯了您的权益,请联系站长删除!