首页 > 其他分享 >ABAP 内表转CSV文件推送SAP服务器和SFTP到对方服务器

ABAP 内表转CSV文件推送SAP服务器和SFTP到对方服务器

时间:2023-11-16 09:11:37浏览次数:30  
标签:parameters SFTP lv lt ls tab 服务器 SAP

1、内表转CSV文件,老ECC个别版本该函数有BUG,I类型字段会dump

DATA:lt_csv_vbak TYPE ztruxs_t_text_data,"ztruxs_t_text_data长度为8192

CALL FUNCTION 'ZSAP_CONVERT_TO_CSV_FORMAT'
      TABLES
        i_tab_sap_data       = lt_vbak
      CHANGING
        i_tab_converted_data = lt_csv_vbak
      EXCEPTIONS
        conversion_failed    = 1
        OTHERS               = 2.

2、推送SAP服务器,使用open dataset,百度一堆

DATA:BEGIN OF ls_tab,
          tline(8192),  "与内表转CSV文件参考类型长度一致
        END OF LS_TAB.

CONCATENATE lv_dir gv_vbak_filename INTO lv_dir_path.
    OPEN DATASET lv_dir_path FOR OUTPUT IN TEXT MODE ENCODING NON-UNICODE.
    IF sy-subrc = 0.
      CLEAR:ls_tab,ls_tab.
      LOOP AT lt_tab_vbak INTO ls_tab .
        TRANSFER ls_tab TO lv_dir_path.
      ENDLOOP.
      CLOSE DATASET lv_dir.
    ENDIF.

3、推送SFTP,以WINDOWS NT为例,LINUX系统类似;可参考SAP to SFTP simple Setup with a Windows Host | SAP Blogs;但把命令封装到参数里调用函数不行,使用下述方法可以

首先安装Winscp 方法网上有

其次配置SM69,(配置里要把cmd命令脚本关联 脚本里写关于文件操作命令)后续再补充

代码:

 DATA:lv_param TYPE sxpgcolist-parameters,
       lv_exitcode TYPE btcxpgexit,
       lt_protocol TYPE TABLE OF btcxpm.
  CONCATENATE '/parameter d:\usr\sap\datalake\' p_lv_file_name INTO lv_param."sap服务器文件路径
  CALL FUNCTION 'SXPG_COMMAND_EXECUTE'
    EXPORTING
      commandname                   = 'ZSFTP'
      additional_parameters         = lv_param
    IMPORTING
      exitcode                      = lv_exitcode
    TABLES
      exec_protocol                 = lt_protocol
    EXCEPTIONS
      no_permission                 = 1
      command_not_found             = 2
      parameters_too_long           = 3
      security_risk                 = 4
      wrong_check_call_interface    = 5
      program_start_error           = 6
      program_termination_error     = 7
      x_error                       = 8
      parameter_expected            = 9
      too_many_parameters           = 10
      illegal_command               = 11
      wrong_asynchronous_parameters = 12
      cant_enq_tbtco_entry          = 13
      jobcount_generation_error     = 14
      OTHERS                        = 15.
  IF lv_exitcode = 0.
    p_lv_flg = 'S'.
  ELSE.
    p_lv_flg = 'E'.
  ENDIF.

 

标签:parameters,SFTP,lv,lt,ls,tab,服务器,SAP
From: https://www.cnblogs.com/coderfarmer/p/17835402.html

相关文章

  • 如何用SaleSmartly集成WhatsApp账号(内含WhatsApp个人号、商业号、API号对比图)
    用SaleSmartly集成WhatsApp账号如果企业有多个WhatsApp账号,无论是个人账号还是工作账号,员工操作起来可能会觉得难以管理和切换。SaleSmartly就可以解决这个问题,让员工在一个平台上同时使用多个WhatsApp账号,不需要频繁地登录和退出,方便客服查看和回复所有的消息和通话。在SaleSmartl......
  • SQLSERVER 2016新建订阅,连接发布服务器时报错“设置连接字符串后无法更改或读取属性 P
    被此问题困扰许久,查遍全网也没有查到合适的解决方案。特此记录,希望帮到需要的人。SQLSERVER2016新建订阅,连接发布服务器时报错“设置连接字符串后无法更改或读取属性Password。(Microsoft.SqlServer.ConnectionInfo)”===================================设置连接字符串......
  • 作为一个系统管理员 为防止服务器损坏 我需要提前备份哪些内容
    作为系统管理员,定期备份是维护服务器安全性和可用性的重要步骤之一。以下是一些常见的需要备份的内容:系统配置文件:备份位于/etc目录下的系统配置文件,这些文件包括网络配置、用户配置、服务配置等。常见的配置文件有/etc/network/、/etc/ssh/、/etc/fstab等。tarczvfetc_back......
  • Dread Hunger恐惧饥荒服务器语言与阴谋的狼人杀对决
    DreadHunger恐惧饥荒服务器语言与阴谋的狼人杀对决大家好我是艾西,今天跟大家聊下DreadHunger这一款开放世界冒险,生存与背叛的8人游戏以航海为题材的狼人杀游戏。一场关于生存与背叛为主题的海上狼人杀游戏,八位探险家将乘着船只航行过残酷的北极,而船上有两位叛徒呼唤了黑暗的力量......
  • WhatsApp个人号、Business号、API号到底有什么区别
    WhatsApp作为全球苹果应用商店中用户下载量最多的社交网络应用,在全球有25亿的用户,每日活跃人数超过5亿人。很多人都以为WhatsApp就是一个软件,但是其实它是个家族,里面共有三个成员,分别是WhatsApp Messenger,WhatsApp Business和WhatsApp Business API。按照它们推出市场的时间来......
  • 关于SAP ABAP ALV开发的吐槽
    我认为ALV开发时ABAPer第二无聊的工作,非必要千万别做,浪费青春;实在要做也要提高效率少花时间在ALV展示上,集中精力处理后台逻辑。常见的callFM或者OO+Dialog的实现方式,都要手动设置fieldcat、layout,挺烦人的。我比较喜欢用SAP标准的SALV类来做,或者使用国外大神封装的FastAL......
  • Nginx负载均衡 | proxy_pass指令代理到多个后端服务器
    使用Nginx的proxy_pass指令代理到多个后端服务器,并实现一种负载均衡或轮询的方式来随机或交替选择不同的后端服务器。这样可以实现在多个Tile服务器之间进行请求的随机分发。以下是一个示例Nginx配置,展示了如何配置代理到多个Tile服务器并进行负载均衡:http{upstreamtile_ser......
  • Windows和Linux服务器安装OnlyOffice服务
    1.Windows安装OnlyOffice服务1.1 启用Hyper-V启用Hyper-V以在Windows10上创建虚拟机:详情参考微软官方教程......
  • 建简单的静态文件服务器:使用Node.js和HTTP模块
    创建简单的静态文件服务器:使用Node.js和HTTP模块在Web开发中,经常需要搭建一个能够提供静态文件访问的服务器。无论是用于本地开发调试,还是用于部署网站,这都是一个常见的需求。本篇文章将介绍如何使用Node.js和其内置的HTTP模块来创建一个简单的静态文件服务器。准备工作首先,确......
  • Linux服务器修改java项目内存大小
    找到启动脚本:找到你的Java项目的启动脚本,这通常是一个.sh(Shell脚本)文件。编辑脚本:使用文本编辑器(比如vim或nano)打开脚本文件。设置Java参数:在脚本文件中找到启动Java的命令行,并添加或修改相关的JVM参数,如下所示:bash#在启动Java的命令行中添加或修......