上传PDF、DOC文件到SAP HCM系统中案例

news2025/1/14 0:49:02

背景:公司最近在上电子签系统,以实现劳动合同、保密协议等文件的去纸质化,保存为电子档文件,而企业的信息化的中心是SAP ERP,于是领导要求将签好的电子文件存储到HCM中。

题主写了如下代码实现需求:

FUNCTION ZHR_SAVE_FILE.
*"----------------------------------------------------------------------
*"*"局部接口:
*"  IMPORTING
*"     VALUE(FILE) TYPE  STRING OPTIONAL
*"     VALUE(USRTY) TYPE  CHAR4 OPTIONAL
*"     VALUE(USRID) TYPE  CHAR30 OPTIONAL
*"     VALUE(FILETYPE) TYPE  CHAR10 OPTIONAL
*"  EXPORTING
*"     VALUE(ZTYPE) TYPE  TEXT1
*"     VALUE(MESSAGE) TYPE  CHAR200
*"----------------------------------------------------------------------

  DATA: access_info   LIKE  scms_acinf   OCCURS 1 WITH HEADER LINE,
        content_txt   LIKE  sdokcntasc   OCCURS 1,
        content_bin   LIKE  sdokcntbin   OCCURS 1.
  DATA: ls_content_bin LIKE LINE OF content_bin.
  DATA: l_string TYPE string.
  DATA: l_xstring TYPE xstring.
  DATA: doc_id_out TYPE char40.
*  DATA: ADOKID     TYPE SAPB-SAPADOKID.
*  DATA: lt_ztb_icnum LIKE TABLE OF ztb_icnum,
*        ls_ztb_icnum LIKE LINE OF lt_ztb_icnum.
  access_info-comp_id    = 'data'.

  IF FILETYPE is INITIAL or FILETYPE = '' .
    ztype = 'E'.
    message = '请输入文件类型!' .
    return.
  ENDIF.

  IF USRID is INITIAL or USRID = ''.
    ztype = 'E'.
    message = '请输入人员工号!' .
    return.
  ENDIF.

  IF usrty IS NOT INITIAL AND usrid IS NOT INITIAL AND file IS NOT INITIAL .
*    ls_ztb_icnum-ictyp = usrty.                               "通过证件号码获取人员编号
*    ls_ztb_icnum-icnum = usrid.
*    APPEND ls_ztb_icnum TO lt_ztb_icnum.CLEAR ls_ztb_icnum.
*
*
*    IF lt_ztb_icnum[] IS NOT INITIAL.
*
*      CALL FUNCTION 'Z_IF_HR_PA_CHECK'
*        TABLES
*          tb_hr_icnum = lt_ztb_icnum.
*
*    ENDIF.
*
*    READ TABLE lt_ztb_icnum INTO ls_ztb_icnum INDEX 1.
*
*    IF ls_ztb_icnum-pernr IS NOT INITIAL.                         "判断是否能找到SAP对应的人员编号

      CALL FUNCTION 'SCMS_BASE64_DECODE_STR'
        EXPORTING
          input    = file
*     unescape = 'X'
        IMPORTING
          output   = l_xstring
        EXCEPTIONS
          failed   = 1
          OTHERS   = 2.
      IF sy-subrc <> 0.
* Implement suitable error handling here
      ENDIF.

      CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
        EXPORTING
          buffer                = l_xstring
*     APPEND_TO_TABLE       = ' '
*   IMPORTING
*     OUTPUT_LENGTH         =
        TABLES
          binary_tab            = content_bin
                .

      DATA: lv_nu TYPE i.
      CLEAR l_string.
      CLEAR access_info-comp_size.
      LOOP AT content_bin INTO ls_content_bin.
        l_string = ls_content_bin-line.
        access_info-comp_size = STRLEN( l_string ) + access_info-comp_size.
      ENDLOOP.
      access_info-mimetype   = 'application/*'.
      access_info-binary_flg = 'X'.
      access_info-first_line = 1.
      access_info-last_line = LINES( content_bin ).
      APPEND access_info.

      CALL FUNCTION 'SCMS_R3DB_EXPORT'
        EXPORTING
          mandt             = sy-mandt
          crep_id           = 'A2'
          doc_id            = ''
          doc_prot          = 'rud'
          overwrite         = '-'
          vscan_profile     = '/SCMS/KPRO_CREATE'
        IMPORTING
          doc_id_out        = doc_id_out
        TABLES
          access_info       = access_info
          content_txt       = content_txt
          content_bin       = content_bin
        EXCEPTIONS
          error_export      = 1
          error_import      = 2
          error_parameter   = 3
          blocked_by_policy = 4
          OTHERS            = 5.
      IF sy-subrc <> 0.
*    case sy-subrc.
*      when 1.      sys_message_raising error_export.
*      when 2.      sys_message_raising error_export.
*      when 3.      sys_message_raising error_parameter.
*      when 4.      sys_message_raising blocked_by_policy.
*      when others. sys_message_raising error_export.
*    endcase.
      ELSE.
        DATA: BEGIN OF i_toaom OCCURS 1.
                INCLUDE STRUCTURE toaom.
        DATA: END OF i_toaom.
        DATA: BEGIN OF i_toav0 OCCURS 1.
                INCLUDE STRUCTURE toav0.
        DATA: END OF i_toav0.

        REFRESH i_toaom.
        i_toav0-mandt       = sy-mandt.
        i_toav0-sap_object  = 'PREL'.
        i_toav0-archiv_id  = 'A2'.
        i_toav0-object_id  = usrid. "pernr-pernr
        i_toav0-ar_object   = 'HRICONTRAC'.
        i_toav0-ar_date     = sy-datum.
*  I_TOAV0-DEL_DATE    = SY-DATUM.
        i_toav0-reserve     = filetype.
        i_toav0-arc_doc_id  = doc_id_out.
        APPEND i_toav0.
        CALL FUNCTION 'ARCHIV_CONNECTIONTABLE_INSERT'
          TABLES
            entrys_connectiontable = i_toav0
          EXCEPTIONS
            no_entry_possible      = 1
            OTHERS                 = 2.
        CASE sy-subrc.
          WHEN 1.
            MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
              RAISING no_entry_possible.
          WHEN 2.
            MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
              RAISING others.
          WHEN OTHERS.
            ztype = 'S'.
            message = '上传成功'.
        ENDCASE.
      ENDIF.
*    ELSE.
*      ztype = 'E'.
*      CONCATENATE '无法在SAP系统中找到证件号码为:' ls_ztb_icnum-icnum ',的人员!' INTO message .
    ENDIF.
*  ELSE.
*    ztype = 'E'.
*    message = '请输入所有必输项!'.
*  ENDIF.

ENDFUNCTION.

效果图如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2062878.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据恢复技巧:Windows降级后如何恢复数据

将 Windows 11 回滚到 Windows 10 或将 Windows 10 回滚到 Windows 7 后文件消失了&#xff1f;Windows降级后如何恢复数据&#xff1f;在这里&#xff0c;这篇关于MiniTool的帖子将向您展示最好的数据恢复软件&#xff0c;以帮助您执行Windows文件恢复。 Windows 降级后&#…

短视频SDK解决方案,Flutter赋能,跨平台无缝体验

如何快速、高效地创作出既吸引人眼球又富有个性的短视频&#xff0c;成为了众多内容创作者、APP开发者及企业营销团队共同关注的焦点。美摄科技作为视频技术领域的佼佼者&#xff0c;凭借其强大的技术实力与创新精神&#xff0c;推出了基于Flutter框架的短视频SDK解决方案&…

NC 矩阵元素查找

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 描述 已知一个有序…

npm error network ‘proxy‘ config is set properly. See: ‘npm help config‘

使用" npm install " 或者 " npm i " 初始化项目依赖失败 npm error network proxy config is set properly. See: npm help config 出现这样的解决方法如下&#xff1a; 1.查看代理 //代理 npm config get proxy //缓存 npm config get npm config …

【工控】线扫相机小结

背景简介 我目前接触到的线扫相机有两种形式: 无采集卡,数据通过网线传输。 配备采集卡,使用PCIe接口。 第一种形式的数据通过网线传输,速度较慢,因此扫描和生成图像的速度都较慢,参数设置主要集中在相机本身。第二种形式的相机配备采集卡,通常速度更快,但由于相机和…

汇智ERP Upload.aspx 文件上传致RCE漏洞复现

0x01 产品简介 汇智ERP是一款由江阴汇智软件技术有限公司开发的企业资源规划(ERP)软件,旨在通过信息化手段帮助企业优化业务流程,提升管理效率,增强综合竞争力。适用于各类企业,包括大型企业、中小型企业以及集团化企业。根据企业规模和业务需求,汇智ERP提供了不同的版…

权重pt文件(.pth后缀)如何查看?|编程tips·24-08-22

权重pt文件&#xff08;.pth后缀&#xff09;如何查看&#xff1f; 小罗碎碎念 我们在查看源码的时候&#xff0c;如果是预训练的模型&#xff0c;或者我们之前说的基础模型&#xff0c;那么就会涉及到一个内容——权重。但是可能有的人没有具体接触过&#xff0c;只是停留在“…

(苍穹外卖)day01项目介绍以及环境搭建

&#xff08;新版&#xff09;苍穹外卖&#xff1a;前后端分离&#xff08;主流&#xff09;的企业级实战项目---外卖点餐 用户在线点餐 可作为毕业设计 开发方式由传统开发升级为前后端分离开发 用户端实现由H5升级为小程序 服务端实现由有状态升级…

有界注意力:增强文本到图像合成中的控制

人工智能咨询培训老师叶梓 转载标明出处 传统的文本到图像扩散模型虽然能够生成多样化和高质量的图像&#xff0c;但在处理包含多个主题的复杂输入提示时&#xff0c;往往难以准确捕捉预期的语义。特别是当这些主题在语义上或视觉上相似时&#xff0c;模型生成的图像常常出现语…

SpringBootWeb 篇-深入了解 SpringBoot + Vue 的前后端分离项目部署上线与 Nginx 配置文件结构

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 云服务器的准备 2.0 Xshell 和 Xftp 软件 2.1 Xshell 介绍 2.2 Xftp 介绍 3.0 在云服务器进行环境配置 3.1 安装 JDK 3.2 安装 MySQL 3.3 安装 Nginx 4.0 SpringB…

换代危机,极氪不得不闯的一关

文&#xff5c;刘俊宏 编&#xff5c;王一粟 “今年&#xff0c;不容我们有任何犯错的机会&#xff0c;如果犯错&#xff0c;一定会全盘皆输。” 面临智能化愈发重要的汽车市场&#xff0c;极氪智能科技CEO安聪慧曾在今年初提醒着极氪汽车&#xff08;下简称极氪&#xff09…

团队管理三大核心要点

团队管理不仅关乎任务的完成效率&#xff0c;更关乎团队成员的成长与团队的持续发展。一个高效、和谐的团队背后&#xff0c;往往离不开管理者对以下几个关键要点的深刻理解和有效实践。 一、以人为本 管理的本质不是简单地“管人”&#xff0c;而是通过管事来激发人的潜能&a…

叉车考证考试题库分享

1、制动效果的良好与否&#xff0c;主要取决于路面制动力的大小。 A、正确 B、错误 答案&#xff1a;A 2、《特种设备使用管理规则》规定&#xff0c;特种设备使用单位应当根据本单位的特种设备数量、特征等配备相应的特种设备作业人员&#xff0c;并且在使用特种设备时应保…

教程2_编辑形状

本文将介绍一些形状的基本编辑 1、对象属性设置 我们通过双击画布上的对象&#xff0c;弹出属性设置框 这里我们使用的是Box对象&#xff0c;每种对象的属性会有差异&#xff0c;根据属性名称进行相应设置即可。 2、对象局部编辑 点击工具栏中的Partial图标 当对象创建后需…

UE5 多个类选择界面生成。解决方案思路。

中控器CC 》用户界面控制器UI_CC 》用户界面UI_Inst 生成 CC使用接口&#xff0c;通知UI_CC开始生成UI_Inst。 蓝图函数库编写判断是否存在和创建UI的蓝图。&#xff08;此处略&#xff09; UI_CC生成时&#xff0c;userwidget使用接口&#xff0c;注册UI_CC的用户控件的控件…

(转载)使用zed相机录制视频

参照下面这个链接 https://blog.csdn.net/peng_258/article/details/127457199?ops_request_misc&request_id&biz_id102&utm_termzed2%E5%BD%95%E5%88%B6%E6%95%B0%E6%8D%AE%E9%9B%86&utm_mediumdistribute.pc_search_result.none-task-blog-2~all~sobaiduweb…

AI绘画StableDiffusion有哪几种模型,各个模型之间又有什么作用?小白入门必看扫盲级教程!(附各种模型资料)

大家好&#xff0c;我是画画的小强 在AI绘画工具 Stable Diffusion中&#xff0c;模型有好几种&#xff0c;不同插件有不同的模型&#xff0c;分别作用于不同的功能。 今天强哥就带着大家一起来了解一下。 大模型&#xff1a;Stable Diffusion StableDiffusion大模型&#…

YOLOv8改进 | 融合改进 | C2f 融合Efficient Multi-Scale Conv提升检测效果【改进结构图+完整代码】

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录 &#xff1a;《YOLOv8改进有效…

[已解决]mac远程连接windows桌面:parallels client连接遇到的问题

[已解决]mac远程连接windows桌面&#xff1a;parallels client连接遇到的问题 问题一&#xff1a;网络不通问题二&#xff1a;远程windows防火墙导致无法连接问题三&#xff1a;远程桌面服务未启动问题四&#xff1a;家庭版&#xff08;非专业版&#xff09;windows导致的无法使…

Xilinx FPGA 7系列 GTX/GTH Transceivers

1概述 Xilinx 7系列FPGA全系所支持的GT&#xff0c;GT资源是Xilinx系列FPGA的重要卖点&#xff0c;也是做高速接口的基础&#xff0c;GT的意思是Gigabyte Transceiver&#xff0c;G比特收发器。不管是PCIE、SATA、MAC等&#xff0c;都需要用到GT资源来做数据高速串化和解串处理…