ABAP--通过'ARCHIV_CREATE_FILE'上传员工照片(代码摘抄OAOH)

本文介绍了一款用于批量导入员工照片到SAP系统的ABAP程序。该程序通过读取包含员工编号的文本文件和对应的照片文件,实现自动化的照片上传功能。程序详细展示了如何构造文件路径、使用GUI_UPLOAD函数模块读取文件以及ARCHIV_CREATE_FILE函数模块来完成照片的存储。

1) Store the Photograph of the Employee as the PERNR.JPG (PERNR = EMPLPYEES PERSONNEL NUMBER) at a predifined location.

2) Have a text file with all the pernr for whom you want to upload the photo and the JPGs you have in the folder.

3) Use this Function module with the loop for all the PERNR

* Function module to update Tran OAAD
 
* Create file path (Directory)-(Employee No.).JPG
 
    CONCATENATE 'dir where the file is stored' wa_pernr-pernr '.' 'jpg' INTO lw_path.
************************************************************************
* Copyright 2004 C-Bons Wuhan                                          *
* All Rights Reserved                                                  *
*----------------------------------------------------------------------*
* Program Name : ZHRIPHOTO                                             *
* Project      :  SAP Implementation Project                     *
* Program Title: 照片导入                                              *
* Created by   : DEV01                                                 *
* Created on   : 2007/09/15                                            *
* Version      : 1.0                                                   *
*----------------------------------------------------------------------*
* Function Description:                                                *
* 照片导入                                                             *
*----------------------------------------------------------------------*
* Data Table List:                                                     *
*                                                                      *
*----------------------------------------------------------------------*
* Refrence Table List:                                                 *
*                                                                      *
*----------------------------------------------------------------------*
* Modification Log:                                                    *
* Date        Programmer     Correction Number                         *
************************************************************************
REPORT zhriphoto NO STANDARD PAGE HEADING LINE-SIZE 255
  MESSAGE-ID zdev .
*I N T E R N A L T A B L E S
DATA : BEGIN OF gt_photo OCCURS 0,
        pernr(8),
     END OF gt_photo.
DATA: g_path LIKE draw-filep,
      g_sapobjid LIKE sapb-sapobjid,
      g_filename TYPE string,
      g_sappfad LIKE sapb-sappfad.

PARAMETERS: p_file  LIKE rlgrap-filename OBLIGATORY.  " 文件路径

************************************************************************
*&  Initialization
************************************************************************
INITIALIZATION.
*  CONCATENATE sy-uname sy-datum+4(4) INTO group.
************************************************************************
*                      START-OF-SELECTION
************************************************************************
AT SELECTION-SCREEN ON VALUE-REQUEST FOR  p_file.
  CALL FUNCTION 'WS_FILENAME_GET'
    EXPORTING  " DEF_FILENAME = ' '
      def_path         = 'C:/'
      mask             = ',Text Files,*.txt;*.prn,All Files,*.*.'
      mode             = 'O'
      title            = '选取导入文件'(100)
    IMPORTING
      filename         = p_file
    EXCEPTIONS
      inv_winsys       = 1
      no_batch         = 2
      selection_cancel = 3
      selection_error  = 4
      OTHERS           = 5.
  IF sy-subrc <> 0 AND sy-subrc <> 3.
    MESSAGE e102(zdev) WITH 'Error Selecting File'(007).
  ENDIF.

************************************************************************
*                      START-OF-SELECTION
************************************************************************
START-OF-SELECTION.
  g_path = p_file.
  CALL FUNCTION 'CV120_SPLIT_PATH'
    EXPORTING
      pf_path  = g_path
    IMPORTING
      pfx_path = g_path.
  g_filename = p_file.

  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      filename                = g_filename
*      FILETYPE                = 'ASC'
*      has_field_separator     = 'X'
*      dat_mode                = 'X'
    TABLES
      data_tab                = gt_photo
    EXCEPTIONS
      file_open_error         = 1
      file_read_error         = 2
      no_batch                = 3
      gui_refuse_filetransfer = 4
      invalid_type            = 5
      no_authority            = 6
      unknown_error           = 7
      bad_data_format         = 8
      header_not_allowed      = 9
      separator_not_allowed   = 10
      header_too_long         = 11
      unknown_dp_error        = 12
      access_denied           = 13
      dp_out_of_memory        = 14
      disk_full               = 15
      dp_timeout              = 16
      OTHERS                  = 17.

  IF sy-subrc <> 0.
    MESSAGE s306 .
  ENDIF.

  LOOP AT gt_photo.
    CONCATENATE g_path gt_photo-pernr  '.JPG'  INTO g_sappfad.
    CONCATENATE gt_photo-pernr '0002' INTO g_sapobjid.
    CALL FUNCTION 'ARCHIV_CREATE_FILE'
      EXPORTING
        ar_object               = 'HRICOLFOTO'
        object_id               = g_sapobjid
        sap_object              = 'PREL'
        doc_type                = 'JPG'
        path                    = g_sappfad
      EXCEPTIONS
        error_conectiontable    = 1
        error_parameter         = 2
        error_archiv            = 3
        error_upload            = 4
        error_kernel            = 5
        no_entry_possible       = 6
        error_comunicationtable = 7
        OTHERS                  = 8.
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
   ENDIF.
    CLEAR g_filename.
  ENDLOOP.

************************************************************************
*                      END-OF-SELECTION
************************************************************************
END-OF-SELECTION.
  WRITE / '执行完毕!'.



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1755145


已经博主授权,源码转载自 https://pan.quark.cn/s/fb533687a163 《C++经典代码大全》是一部专门针对C++入门者的重要参考资料,其核心目标在于提供易于理解的C++编程范例,旨在协助新学者迅速领会C++语言的关键概念与技术要点。此压缩文件所包含的信息或许涵盖了从基础到高级的各类C++编程技巧,涉及面向对象编程中的类与对象、函数的应用、程序流程控制、数据结构设计、模板技术以及异常管理等多个关键领域。 1. **基础语法** - 变量声明与初始化:掌握如何声明并初始化不同数据类型的变量,例如整型(int)、浮点型(float)、字符型(char)等。 - 基本输入输出:学习运用`std::cin`和`std::cout`执行标准数据输入与输出操作。 - 控制流语句:熟练运用条件语句(if、if-else、switch-case)以及循环语句(for、while、do-while)来控制程序流程。 2. **类与对象** - 类的定义:学会如何构建类,包含其成员变量与成员函数的设定。 - 对象的创建与使用:掌握如何实例化对象,并经由对象访问类的成员函数。 - 封装:理解封装的理念,并学习使用private和public访问修饰符来保护数据。 - 构造函数与析构函数:掌握如何为类定义自定义的构造过程与析构过程。 3. **函数** - 函数的定义与调用:理解函数的功能与作用,以及如何进行函数的定义和调用。 - 函数参数:精通不同类型的参数传递方法,包括值传递和引用传递。 - 函数重载:学习在同一作用域内定义多个具有相同名称但参数列表不同的函数。 - 函数指针:了解函数指针的运用方法,及其在回调函数和模板中的应用场景。 4. **数组与字符串** -...
内容概要:本文研究了一种计及自适应预测修正的微电网模型预测控制(MPC)优化调度方法,并提供了Matlab代码实现。该方法针对微电网中风电出力等可再生能源的强不确定性,引入自适应预测修正机制,动态调整预测模型以提升短期功率预测精度,从而增强调度决策的准确性与系统运行的鲁棒性。研究构建了完整的MPC滚动优化框架,涵盖预测模型建立、多时间尺度优化求解、实时反馈校正等关键环节,实现了系统运行成本最小化、能源高效利用与功率平衡的多重目标。所提方法有效应对了负荷波动与新能源出力随机性带来的调度挑战,提升了微电网能量管理系统的智能化水平。; 适合人群:具备电力系统、自动化、控制理论或相关领域基础知识的研究生、科研人员及工程技术人员,尤其适合从事微电网优化、可再生能源集成、模型预测控制研究的专业人士,熟悉Matlab编程与优化算法者更佳。; 使用场景及目标:①应用于高比例可再生能源接入的微电网能量管理系统,提升调度方案的实时性与鲁棒性;②为不确定性环境下电力系统动态优化控制策略的研究提供仿真验证平台;③支持学术论文复现、科研课题攻关及实际工程项目的前期技术验证与方案预研。; 阅读建议:建议结合Matlab代码逐模块分析算法实现细节,重点关注预测模型构建与反馈修正机制的设计逻辑,通过调整风电出力、负荷需求等场景参数进行仿真实验,深入理解MPC在微电网调度中的滚动优化特性与自适应修正能力。
代码下载链接: https://pan.quark.cn/s/a4b39357ea24 在信息技术领域中,字符编码扮演着处理文本数据的核心角色。本文着重研究在微控制器系统中,运用C语言如何将UTF-8编码格式转换为GBK编码格式,旨在处理串口通信、TF卡存储或LCD显示屏上可能出现的中文显示错误问题。我们将详细剖析UTF-8与GBK编码的运作机制,并研究基于Keil开发平台的C语言实现流程。 UTF-8是一种被广泛接纳的Unicode字符编码方案,它采用可变长度的字节序列来表示字符,每个Unicode字符都对应一个独一无二的数字标识,即码点。UTF-8的一个显著特点是对ASCII字符(英文文本)保持不变,因此在网络传输和文件存储方面展现出优秀的兼容性。 GBK编码,正式名称为“汉字内码扩展规范”,是中国大陆的标准化编码,是对GB2312编码的延伸,总共涵盖了20902个汉字及其他符号,每个字符使用两个字节来表示。GBK在GB2312的基础上扩充了许多繁体字、少数民族文字以及特殊符号,目的是满足更广泛的语言需求。 将UTF-8转换为GBK的主要难点在于GBK是一种固定长度的双字节编码,而UTF-8则是可变长度的编码。转换过程中需要将UTF-8的多字节序列解析为相应的Unicode码点,然后依据GBK的编码规则查找匹配的编码。这一过程通常借助查表法完成,即建立一个从Unicode码点到GBK编码的映射库。 在Keil开发环境中,使用C语言实现UTF-8到GBK的转换可以遵循以下步骤: 1. **构建查表法所需的GBK编码库**:需要准备一个包含所有GBK字符二进制形式的GBK编码库。这个库通常是一个二进制文件,其大小大约为41KB。 2. **解析UTF-8编码**...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值