SAP FICO创建会计凭证添加附件

这篇具有很好参考价值的文章主要介绍了SAP FICO创建会计凭证添加附件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在FB01创建的会计凭证,可以在FB02中,增加附件,比如,打印的凭证PDF附件,我们的需求是把票据信息生成的PDF放到对应的会计凭证 ,或者是把银企直连接支付后银行的电子回单的PDF文件放到对应的会计凭证 上,

之前一开始做的是附件保存到SAP的服务器上,后来修改为传到OPENTEXT上,

SAP FICO创建会计凭证添加附件,SAP ABAP,SAP FICO,SAP ABAP,开发语言SAP FICO创建会计凭证添加附件,SAP ABAP,SAP FICO,SAP ABAP,开发语言

以下记录一些样的功能点,

  • 使用函数SSF_FUNCTION_MODULE_NAME得到SMARTFORM,并打印,得到打印的内容LS_CONTROL_PARAMETERS
  • 函数CONVERT_OTF把SMARTFORM生成PDF文件,
  • SCMS_XSTRING_TO_BINARY转换为二进制值,用于传输 上传。
  • 调用函数BINARY_RELATION_CREATE_COMMIT“创建附件”,把文件传到SAP服务器,并使用成为会计凭证附件
  • 调用BINARY_RELATION_CREATE,“创建外部凭证(URL)”,把URL地址作为作为会计凭证附件。
  •       背面信息
          DATA(LT_NEW) = LT_BMXX2.
          DELETE LT_NEW WHERE DRAFTNO <>  <FS_PMXX>-DRAFTNO.
          IF LT_NEW IS NOT INITIAL.
            CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
              EXPORTING
                FORMNAME           = 'ZTR2_0580_BMXX'
                VARIANT            = ' '
                DIRECT_CALL        = ' '
              IMPORTING
                FM_NAME            = LV_FM_NAME
              EXCEPTIONS
                NO_FORM            = 1
                NO_FUNCTION_MODULE = 2
                OTHERS             = 3.
            IF SY-SUBRC <> 0.
              RETURN.
            ENDIF.
    
            CALL FUNCTION LV_FM_NAME
              EXPORTING
                CONTROL_PARAMETERS = LS_CONTROL_PARAMETERS
               OUTPUT_OPTIONS     = LS_OUTPUT_OPTIONS
               USER_SETTINGS      = 'X'
                IV_ZTR2T0350       = <FS_PMXX>
              IMPORTING
                JOB_OUTPUT_INFO    = LS_JOB_OUTPUT_INFO
              TABLES
                IT_ZTR2T0370       = LT_NEW
              EXCEPTIONS
                FORMATTING_ERROR   = 1
                INTERNAL_ERROR     = 2
                SEND_ERROR         = 3
                USER_CANCELED      = 4
                OTHERS             = 5.
            IF SY-SUBRC <> 0.
              MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
      WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
            ENDIF.
            REFRESH LT_NEW.
    
          ENDIF.
    
          CALL FUNCTION 'SSF_CLOSE'
            IMPORTING
              JOB_OUTPUT_INFO  = LS_JOB_OUTPUT_INFO
            EXCEPTIONS
              FORMATTING_ERROR = 1
              INTERNAL_ERROR   = 2
              SEND_ERROR       = 3
              OTHERS           = 4.
          IF SY-SUBRC <> 0.
            MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
          ENDIF.
    
    *Get PDF content
          CALL FUNCTION 'CONVERT_OTF'
            EXPORTING
              FORMAT                = 'PDF'
              MAX_LINEWIDTH         = 132
            IMPORTING
              BIN_FILESIZE          = LV_BIN_FILESIZE
              BIN_FILE              = LV_BIN_FILE
            TABLES
              OTF                   = LS_JOB_OUTPUT_INFO-OTFDATA[]
              LINES                 = LT_PDF_LINE
            EXCEPTIONS
              ERR_MAX_LINEWIDTH     = 1
              ERR_FORMAT            = 2
              ERR_CONV_NOT_POSSIBLE = 3
              ERR_BAD_OTF           = 4
              OTHERS                = 5.
          IF SY-SUBRC <> 0.
          ENDIF.
    
          DATA: GT_BIN    TYPE SOLIX OCCURS 0,
                G_ATTSIZE TYPE INT4.
    
          CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
            EXPORTING
              BUFFER        = LV_BIN_FILE
    *         APPEND_TO_TABLE       = ' '
            IMPORTING
              OUTPUT_LENGTH = G_ATTSIZE
            TABLES
              BINARY_TAB    = GT_BIN.
    
          INCLUDE <CNTN01>.
          TYPE-POOLS: SLIS, ABAP, TRUXS.
    
          DATA:L_OBJ      TYPE SWC_OBJECT,
               G_FILENAME TYPE STRING,
               GS_OBJB    TYPE BORIDENT,
               GS_OBJA    TYPE BORIDENT,
               GS_BINREL  TYPE GBINREL,
               GT_BINATT  TYPE STANDARD TABLE OF BRELATTR.
          IF <FS_PMXX>-PJZT = '100006' OR <FS_PMXX>-PJZT = '030006'.
            G_FILENAME = '票面信息-已签收-' && <FS_PMXX>-DRAFTNO.
          ELSE.
            G_FILENAME = '票面信息-待签收-' && <FS_PMXX>-DRAFTNO.
          ENDIF.
          DATA: L_SEQ TYPE I.
          SWC_CONTAINER      L_CONT.
          SWC_CREATE_OBJECT  L_OBJ  'MESSAGE'       ''.
          SWC_SET_ELEMENT    L_CONT 'NO_DIALOG'     'X'.
          SWC_SET_ELEMENT    L_CONT 'DOCUMENTTITLE' G_FILENAME.
          SWC_SET_TABLE      L_CONT 'Content_Hex'   GT_BIN.
          SWC_SET_ELEMENT    L_CONT 'DOCUMENTTYPE'  'PDF'.
          SWC_SET_ELEMENT    L_CONT 'DOCUMENTSIZE'  G_ATTSIZE.
          SWC_REFRESH_OBJECT L_OBJ.
          SWC_CALL_METHOD    L_OBJ  'CREATE'        L_CONT.
          SWC_GET_OBJECT_KEY L_OBJ  GS_OBJB-OBJKEY.
    
    
          GS_OBJB-OBJTYPE = 'MESSAGE'.   "type of attach document
          GS_OBJA-OBJTYPE = 'BKPF'.      "BO of SAP Document.
          CONCATENATE     GS_UPLOAD-BUKRS  "company code
                          GS_UPLOAD-BELNR "FI Document
                          GS_UPLOAD-GJAHR   "fiscal year
                         INTO
                         GS_OBJA-OBJKEY.
    
          CALL FUNCTION 'BINARY_RELATION_CREATE_COMMIT'
            EXPORTING
              OBJ_ROLEA      = GS_OBJA
              OBJ_ROLEB      = GS_OBJB
              RELATIONTYPE   = 'ATTA'
            IMPORTING
              BINREL         = GS_BINREL
            TABLES
              BINREL_ATTRIB  = GT_BINATT
            EXCEPTIONS
              NO_MODEL       = 1
              INTERNAL_ERROR = 2
              UNKNOWN        = 3
              OTHERS         = 4.

    使用OPENTEXT保存附件,把URL地址作为会计凭证附件地址。文章来源地址https://www.toymoban.com/news/detail-694088.html

  • FORM PF_UPLOAD_FILE  USING    PS_JOB_OUTPUT_INFO TYPE SSFCRESCL
                                  PS_PMXX TYPE ZTR2T0350
                                  PS_UPLOAD TYPE TY_DATA
                         CHANGING P_FALG TYPE CHAR1.
      DATA: LS_CONTROL_PARAMETERS TYPE SSFCTRLOP,
            LS_OUTPUT_OPTIONS     TYPE SSFCOMPOP,
            LS_JOB_OUTPUT_INFO    TYPE SSFCRESCL.
      DATA: LT_PDF_LINE     TYPE STANDARD TABLE OF TLINE,
            LV_BIN_FILESIZE TYPE I,
            LV_BIN_FILE     TYPE XSTRING,
            LV_FILELENGTH   TYPE  NUM12.
      DATA: LV_FILENAME TYPE STRING.
      DATA: L_ZOAREF_NO TYPE ZOAREF_NO.
      DATA: LV_FLAG       TYPE  CHAR1,  "返回状态
            LV_MESSAGE    TYPE  STRING, "  返回消息
            LV_ATT_NO     TYPE  ZDEATT_NO, " 文件编号
            LV_ARC_DOC_ID TYPE  SAEARDOID. " SAP 归档链接:文档 ID
    
      DATA: LT_0100       TYPE TABLE OF ZTRT0100.
    
      LS_JOB_OUTPUT_INFO = PS_JOB_OUTPUT_INFO.
    *Get PDF content
      CALL FUNCTION 'CONVERT_OTF'
        EXPORTING
          FORMAT                = 'PDF'
          MAX_LINEWIDTH         = 132
        IMPORTING
          BIN_FILESIZE          = LV_BIN_FILESIZE
          BIN_FILE              = LV_BIN_FILE
        TABLES
          OTF                   = LS_JOB_OUTPUT_INFO-OTFDATA[]
          LINES                 = LT_PDF_LINE
        EXCEPTIONS
          ERR_MAX_LINEWIDTH     = 1
          ERR_FORMAT            = 2
          ERR_CONV_NOT_POSSIBLE = 3
          ERR_BAD_OTF           = 4
          OTHERS                = 5.
      IF SY-SUBRC <> 0.
      ENDIF.
    
      DATA: GT_BIN    TYPE TBL1024 OCCURS 0,
            G_ATTSIZE TYPE INT4.
    
      CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
        EXPORTING
          BUFFER        = LV_BIN_FILE
    *     APPEND_TO_TABLE       = ' '
        IMPORTING
          OUTPUT_LENGTH = G_ATTSIZE
        TABLES
          BINARY_TAB    = GT_BIN.
      LV_FILELENGTH = G_ATTSIZE.
      INCLUDE <CNTN01>.
      TYPE-POOLS: SLIS, ABAP, TRUXS.
    
      IF PS_PMXX-PJZT = '100006' OR PS_PMXX-PJZT = '030006'.
        LV_FILENAME = '票面信息-已签收-' && PS_PMXX-DRAFTNO.
      ELSE.
        LV_FILENAME = '票面信息-待签收-' && PS_PMXX-DRAFTNO.
      ENDIF.
    
      CONCATENATE     PS_UPLOAD-BUKRS  "company code
                      PS_UPLOAD-BELNR "FI Document
                      PS_UPLOAD-GJAHR   "fiscal year
                     INTO
                     L_ZOAREF_NO.
      "外围系统附件上传OpenText
      CALL FUNCTION 'ZRFC_ARCHIV_CREATE_FILE'
        EXPORTING
          IV_BUSTYPE    = 'TR_0130'         "文件类型
          IV_BUKRS      = PS_UPLOAD-BUKRS
          IV_REF_NO     = L_ZOAREF_NO          "会计凭证号
          IV_ITEM       = 0         "收款单行项目
          IV_SCJS       = ''          "上传角色
          IV_DOC_TYPE   = 'PDF'             "
          IV_FILENAME   = LV_FILENAME
          IV_FILELENGTH = LV_FILELENGTH
          IV_TEXT       = ''
        IMPORTING
          EV_FLAG       = LV_FLAG
          EV_MESSAGE    = LV_MESSAGE
          EV_ATT_NO     = LV_ATT_NO
        TABLES
          IT_BIN        = GT_BIN.
      IF LV_FLAG NE 'T'."失败
        RETURN .
    *      wd_comp_controller->pup_message( is_message = lv_message  is_type = 2 ).
      ENDIF.
    
      LT_0100 = VALUE #( BASE LT_0100 ( GUID = CL_SWF_UTL_GUID_CREATE=>GET_GUID_16( ) REF_NO = L_ZOAREF_NO BUSTYPE = 'TR_0130' ATT_NO = LV_ATT_NO  )  ).
      MODIFY ZTRT0100 FROM TABLE LT_0100[].
      COMMIT WORK.
    
    *--------------------------------------------------------------------*
    *取得URL
      DATA LOBJ TYPE REF TO ZCL_TR_POST_CHECK.
      DATA L_URL TYPE SAPB-URI.
      CREATE OBJECT LOBJ.
    
      L_URL = LOBJ->DOWNLOAD_FILE_AS_URL( I_ATT_NO = LV_ATT_NO MODE = 'U' ).
    *--------------------------------------------------------------------*
    *设置FB03可见
      DATA MSG  TYPE STRING .
      DATA ANSWER .
      DATA  LINES  TYPE STRING .
      DATA FOLDER_ID          TYPE SOFDK .
      DATA LT_OBJHEAD  TYPE  STANDARD  TABLE  OF SOLI .
      DATA LT_OBJCONT  TYPE  STANDARD  TABLE  OF SOLI  WITH  HEADER  LINE .
      DATA L_OBJ_ID    TYPE SOODK .
      DATA L_OBJ_DATA  TYPE SOOD1 .
      DATA DOCUMENT_ID        TYPE SOFMK .
      DATA REL_DOC   TYPE BORIDENT .
      DATA IS_OBJECT  TYPE BORIDENT .
      DATA L_INDEX  TYPE SY-INDEX .
      CLEAR :MSG ,ANSWER , LINES  ,FOLDER_ID  ,LT_OBJHEAD ,LT_OBJCONT ,LT_OBJCONT[] ,L_OBJ_ID ,L_OBJ_DATA ,DOCUMENT_ID  ,IS_OBJECT ,REL_DOC  ,L_INDEX .
      DATA LS_OBJCONT TYPE SOLI.
      DATA LT_URLTAB  TYPE STANDARD TABLE OF SOOD-OBJDES.
      DATA L_TAB_SIZE TYPE I.
      DATA L_URL_ID   TYPE SO_URL.
    
      CALL FUNCTION 'SO_FOLDER_ROOT_ID_GET'
        EXPORTING
          REGION    = 'B'
        IMPORTING
          FOLDER_ID = FOLDER_ID
        EXCEPTIONS
          OTHERS    = 1.
    
      L_URL_ID = L_URL.
      L_OBJ_DATA-OBJDES = LV_FILENAME.
      WHILE NOT L_URL_ID IS INITIAL.
        CONCATENATE '&KEY&' L_URL_ID(250) INTO LS_OBJCONT.
        L_OBJ_DATA-OBJDES = LV_FILENAME.
        APPEND LS_OBJCONT TO LT_OBJCONT.
        SHIFT L_URL_ID LEFT BY 250 PLACES.
      ENDWHILE.
    
      L_OBJ_DATA-OBJSNS = 'O'.
      L_OBJ_DATA-OBJLA  = SY-LANGU.
    
      CALL FUNCTION 'SO_OBJECT_INSERT'
        EXPORTING
          FOLDER_ID             = FOLDER_ID
          OBJECT_TYPE           = 'URL'
          OBJECT_HD_CHANGE      = L_OBJ_DATA
        IMPORTING
          OBJECT_ID             = L_OBJ_ID
        TABLES
          OBJHEAD               = LT_OBJHEAD
          OBJCONT               = LT_OBJCONT
        EXCEPTIONS
          ACTIVE_USER_NOT_EXIST = 35
          FOLDER_NOT_EXIST      = 6
          OBJECT_TYPE_NOT_EXIST = 17
          OWNER_NOT_EXIST       = 22
          PARAMETER_ERROR       = 23
          OTHERS                = 1000.
    
      IF SY-SUBRC = 0.
        DOCUMENT_ID-FOLTP = FOLDER_ID-FOLTP.
        DOCUMENT_ID-FOLYR = FOLDER_ID-FOLYR.
        DOCUMENT_ID-FOLNO = FOLDER_ID-FOLNO.
        DOCUMENT_ID-DOCTP = L_OBJ_ID-OBJTP.
        DOCUMENT_ID-DOCYR = L_OBJ_ID-OBJYR.
        DOCUMENT_ID-DOCNO = L_OBJ_ID-OBJNO.
    
        CLEAR REL_DOC .
        REL_DOC-OBJKEY   = DOCUMENT_ID .
        REL_DOC-OBJTYPE  =  'MESSAGE' .
    *    CONCATENATE GS_OUT-BUKRS GS_OUT-BELNR GS_OUT-GJAHR  INTO IS_OBJECT-OBJKEY .
        IS_OBJECT-OBJKEY = L_ZOAREF_NO.
        IS_OBJECT-OBJTYPE  =  'BKPF' .
        CALL FUNCTION 'BINARY_RELATION_CREATE'
          EXPORTING
            OBJ_ROLEA    = IS_OBJECT
            OBJ_ROLEB    = REL_DOC
            RELATIONTYPE = 'URL' "'NOTE'
          EXCEPTIONS
            OTHERS       = 1.
        IF SY-SUBRC  =  0 .
          P_FALG = 'X'.
        ELSE .
          P_FALG = ''.
        ENDIF .
      ELSE.
        P_FALG = ''.
      ENDIF.
    ENDFORM.

到了这里,关于SAP FICO创建会计凭证添加附件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SAP开发环境ABAP的搭建(客户端和服务器),Developer Key和AccessKey的绕过方法

    目录 一.前言 二.客户端GUI安装 1.下载好SAP GUI 750 2.解压后找到SAPGUISetup.exe 3.安装 4.安装完整教程 三.服务端搭建 1.安装VmWare虚拟机 2.下载虚拟机镜像 3.打开虚拟机 4.调整内存大小 5.启动虚拟机  四.创建程序 1.创建包 2.创建程序 3.Developer Key和AccessKey问题及绕过方法 这学期选修

    2024年02月16日
    浏览(44)
  • SAP系统 会计科目主数据详解

    会计科目(主数据)概述: 每个公司代码均指定一个总帐的科目表。此科目表在配置中分配到公司代码,作为其运营科目表 每个总帐都是根据科目表建立的。所有总帐科目的定义均以有序形式包含在科目表内。定义主要由科目编号、科目名称和总帐科目类型组成,其中总帐

    2024年02月08日
    浏览(34)
  • SAP S4 会计科目表的设计

    本文指FI CO HR MM PS模块的单位的相关会计科目的设计: (1)货币资金:对于外币核算的账户,则将币种设置为外币如USD。这样的话,只能核算相关币种,避免财务人员误操作本位币记账。 (2)银行存款:如果管理相关的银行账户,则有两种方法:1)银行科目和银行账户为

    2024年02月06日
    浏览(33)
  • SAP 凭证修改记录CDHDR / CDPOS使用及说明

    目的: 一、sap的更改记录的保存 1、所有的修改记录在 表 CDHDR  and CDPOS 2、 表CDHDR 表CDHDR 记录了用户于什么时间点用什么样的事务代码修改了什么样的对象 在 表CDHDR 字段 :Change doc. Object代 表 了修改的对象 3、 表 CDPOS 是更改记录的行项目 记录了具体是哪个 表 中的哪个

    2024年02月03日
    浏览(38)
  • SAP/ABAP(二)

    一、循环结构 二、条件判断 三、异常处理(cx-root) 四、结构体,工作区 五、内表

    2024年02月17日
    浏览(40)
  • 【SAP ABAP】SAP Webservice & RESTful 接口服务发布教程

    关于 WebService 概念,这篇文章讲解的非常全面,可以移步阅读《SAP Web service》。 本想通过 RFC 来发布 ODATA 服务,奈何当前 SAP ECC 版本过低不支持,只好采用其他方式来发布服务,于是就尝试了下面这两种方法。 SE37,创建以下测试用 RFC 测试执行 RFC,得到的数据结果如下图:

    2024年02月02日
    浏览(40)
  • SAP ABAP技术文章合集_微信公众号:ABAP猿

    序号 文章标题 01 ABAP OOALV-基本显示 02 ABAP OOALV-排序、过滤 03 ABAP OOALV-合计、小计 04 ABAP OOALV-选择模式、触发事件 05 ABAP OOALV-隐藏列、修改列标题、添加图标列、调整列位置 06 ABAP OOALV-固定列、鼠标悬停文本 07 ABAP OOALV-颜色(列、行、单元格) 08 ABAP OOALV-样式(列、行、单元格

    2024年02月03日
    浏览(48)
  • SAP ABAP 基础语法超详细

    1.表声明 当你声明了一个数据表的同时,系统也同时自动生成了一个和数据表同名的结构,结构的变量集等于数据表里面的字段。 2.定义变量 v1 是变量名。 (l) 是变量的长度。 t 是数据类型。 d 是小数位。 ‘xxx’ 是缺省值。 如:data num(10) type p decimals 3 value ‘1.12’. 数据

    2024年02月15日
    浏览(59)
  • SAP ABAP 用户状态锁定案例

    一、前言 项目需求是根据当天及前两天的离职员工信息(假设这是一个定时器任务每天下午5点执行程序,计算前两天的员工工号是为了将5点之后办理离职的员工工号找出来),将这些员工在用户表 USR02 中的锁定状态设置为 “64”,以保证离职员工无法继续使用系统账号。

    2024年02月15日
    浏览(43)
  • SAP,ABAP:ALV变式复制

    应用场景:程序优化,需要新开一个程序优化,优化完成后原程序ALV变式无法带到新的程序, ALV变式是很好用的功能 REPORT zbsc. 事务代码:ZBSC-ALV变式复制 程序名称:ZBSC-ALV变式复制 程序目的: ZBSC-ALV变式复制 开发人员: *(修改日志)----------------------------------------------------

    2024年02月09日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包