设为首页 收藏本站
查看: 831|回复: 0

[经验分享] [转]CG3Z SAP文件上传服务器

[复制链接]

尚未签到

发表于 2015-9-19 10:12:10 | 显示全部楼层 |阅读模式
  [转]CG3Z SAP文件上传服务器
  
  
  [转]CG3Z SAP文件上传服务器
  2011-1-27阅读2792 评论1
  http://blog.sina.com.cn/s/blog_4c4f3d0e01008jym.html
  CG3Y: 下载应用程序到前端
  CG3Z:从前端上传到应用服务器
  发现这个T-code说明有两点:
  1.如果没有OS权限的用户可以用这个T-code上传下载数据
  2.bisis做权限的大大们,要注意把这2个权限封好
  
  不过感觉用这个还是不很方便的,因为可以上传下载的路径的权限,必须要让<sid>adm这个用户有读写的权限,否者也是不能成功的!
  
  
  
  http://scnblogs.techweb.com.cn/dario/
  
  http://www.cnblogs.com/03081626/archive/2010/04/06/1705781.html
  
  
  使用SAP标准功能实现复杂ABAP对象在不同系统间的迁移(转载)
  使用SAP标准功能实现复杂ABAP对象在不同系统间的迁移
http://scnblogs.techweb.com.cn/dario/archives/2.html

  通常情况下,对于单纯的报表类型的简单构造的源代码,我们很容易实现其在不同系统之间的共享,COPY and PASTE 然后创建激活就可以了,但是对于不是由纯字符型构成的开发对象,比如说一个包含了很多DYNPRO的复杂程序或者是很多嵌套结构从而需要依次分别手动创建的大型程序,要实现从一个系统到另一个系统的共享就不是特别的直观。
  SAPLink(http://wiki.sdn.sap.com/wiki/display/ABAP/SAPlink)就是为了这个目的而开发的一个开源工具,但是在使用之前我们必须先安装这个工具,这又造成了一些不方便,假设我们开发了一些工具,需要在不同的项目中使用,如果我们每次都要先安装一个SAPLink,再用SAPLink来安装我们的工具的话,就会显得特别麻烦。
  下面将会向大家介绍一个完全使用SAP标准功能来实现这个功能的具体步骤,假设的场景是我们有两个演示系统RS6和CM1,我们在系统RS6上开发了很多ABAP对象,现在希望能够将RS6上的ABAP对象快速的移植到CM1上面来(RS6和CM1完全不相关,也没有传输路径)。
  1. 登录原始系统RS6, 运行事务代码 SE01,我们可以看到需要移植的ABAP对象。
  
  2.下一步是Release这个CR (change request)RS6K907449, 这一步完成之后我们
就会看到在Application Server上两个文件已经生成了(T_CODE; AL11)。
  第一个文件, Cofiles: /usr/sap/trans/cofiles/K907449.RS6
  
  第二个文件, Data:  /usr/sap/trans/data/R907449.RS6  
  
  3.然后我们使用CG3Y这个事务代码将这两个文件下载到本地,他们就会在后面的传输中被用到.
  
  *对于另外一个文件R907449.RS6执行同样的操作即可
  4. 得到这两个文件之后,我们在RS6系统上的工作就完成了,现在登录到另外一个系统CM1,接下来的一步是使用事务代码CG3Z来讲这两个文件上传到Application Server上指定的目录,这个目录就是每个SAP系统专门用于存放传输文件的目录。每个系统的路径也许会不一样,此处的路径在其他系统上不一定起作用。
  
  *对于文件R907449.RS6, 将路径改为‘//SAPCM01/sapmnt/trans/data/R907449.RS6&prime;.即可
  5.文件上传之后我们需要使用事务代码STMS将这个CR RS6K907449导入到Import Queue中。
  
  在弹出的对话框中输入这个CR:
  
  6.在CR被添加到Import Queue里面后,我们就可以正式开始导入了:
  
  7.导入成功后我们双击这个CR就可以看到所有的ABAP对象都被移植到了新的系统
  
  可以看到采用SAP标准功能实现复杂ABAP对象的迁移是比较简单的,我们不需要安装任何的第三方工具,我们所要做的仅仅是创建一个CR将所有对象包含,然后Release这个CR, 得到两个文件( KXXXXXX.SystemId & RXXXXXX.SystemId ),最后按照传输步骤导入到新系统即可.这种方法对于很多可重用的对象的迁移是非常有帮助的,同时由于我们使用的是SAP标准功能,所以对于几乎所有类型的ABAP对象都有很好的支持。
  
  
  http://www.itpub.net/thread-1168695-1-1.html
  how to download a service object attachment to app server?
  I found some postings / blogs to download an attachment (service objects). This tells to download to local drive or to a mapped network drive . How do I download to an applications erver? Thanks,
  销售订单会随销售单号上传一份合同,合同格式可以是doc、jpg、pdf等格式,现在我们要将这些销售订单中的合同让非SAP系统读取到,所以就产生一个这样的需求。
下面是我收集的一些信息:
1、CG3Z 可以将文件从本地上传到服务器目录
2、CG3Y 可以将服务器中文件下载到本地目录
3、AL11 可以查看服务器目录文件
4、下载到本地的函数为:SO_OBJECT_DOWNLOAD
    不幸的是函数SO_OBJECT_DOWNLOAD不能将附件下载到服务器或FTP服务器,试图修改SO_OBJECT_DOWNLOAD函数中的用到的函数SCMS_R3_TO_CLIENT第105行,以CG3Z中用于上传至服务器函数C13Z_RAWDATA_WRITE 替换,虽然可以上传至SAP服务器,但由于二者采用的格式编码不同,从服务器再下载到本地时无法读取,所以宣告失败。(以word文档为例
  fengleihen   实现附件方式保存到服务器上,ftp的话也应该可以实现
  Z_FENGLEIHEN_TEST.
PARAMETERS: PA_ONAME TYPE SY-UNAME. "receiver
PARAMETERS: PA_SNAME TYPE SY-UNAME. "sender
PARAMETERS: PA_DATUM TYPE SY-DATUM. "sender date
PARAMETERS: PA_DESCR TYPE SO_OBJ_DES."description
PARAMETERS: PA_FNAME TYPE RLGRAP-FILENAME."file path
START-OF-SELECTION.
  DATA: TAB LIKE TABLE OF SOLIX.
  DATA: REC LIKE LINE OF TAB.
  DATA: USR LIKE SOUDNAMEI1.
  DATA: USR_DATA LIKE SOUDATAI1.
  DATA: G_OBJ TYPE SOODK.
  USR-SAPNAME = PA_ONAME.
* 读取用户inbox
  CALL FUNCTION 'SO_USER_READ_API1'
    EXPORTING
      USER            = USR
    IMPORTING
      USER_DATA       = USR_DATA
    EXCEPTIONS
      USER_NOT_EXIST  = 1
      PARAMETER_ERROR = 2
      X_ERROR         = 3
      OTHERS          = 4.
  IF SY-SUBRC <> 0.
  ENDIF.
  DATA: WA_CON LIKE SOFOLENTI1,
        CONTENT LIKE TABLE OF SOFOLENTI1.
*读取文件
  CALL FUNCTION 'SO_FOLDER_READ_API1'
    EXPORTING
      FOLDER_ID                        = USR_DATA-INBOXFOL
    TABLES
      FOLDER_CONTENT                   = CONTENT
   EXCEPTIONS
     FOLDER_NOT_EXIST                 = 1
     OPERATION_NO_AUTHORIZATION       = 2
     X_ERROR                          = 3
     OTHERS                           = 4
            .
  IF SY-SUBRC <> 0.
  ENDIF.
  READ TABLE CONTENT INTO WA_CON WITH KEY OBJ_DESCR = PA_DESCR
                                          SEND_NAM = PA_SNAME
                                          SEND_DATE = PA_DATUM.
  G_OBJ-OBJTP = WA_CON-OBJECT_ID+0(3).
  G_OBJ-OBJYR = WA_CON-OBJECT_ID+3(2).
  G_OBJ-OBJNO = WA_CON-OBJECT_ID+5(12).
  DATA: OBJ LIKE TABLE OF SOOD5,
        WA_OBJ LIKE SOOD5.
* 附件id取得
  CALL FUNCTION 'SO_ATTACHMENT_LIST_READ'
    EXPORTING
      OBJECT_ID             = G_OBJ
    TABLES
      OBJECTS               = OBJ
    EXCEPTIONS
      SYSTEM_FAILURE        = 1
      COMMUNICATION_FAILURE = 2
      OTHERS                = 3.
  IF SY-SUBRC <> 0.
  ENDIF.
  READ TABLE OBJ INTO WA_OBJ INDEX 1.
  DATA: ATT LIKE SOATTLSTI1-ATTACH_ID.
  DATA: LC_NAME(12) TYPE C.
  LC_NAME = PA_ONAME.
  CONCATENATE USR_DATA-INBOXFOL
              WA_CON-OBJECT_ID
              PA_ONAME
              WA_OBJ-OBJTP
              WA_OBJ-OBJYR
              WA_OBJ-OBJNO
          INTO ATT RESPECTING BLANKS.
* 读取附件
  CALL FUNCTION 'SO_ATTACHMENT_READ_API1'
    EXPORTING
      ATTACHMENT_ID                = ATT
   TABLES
     CONTENTS_HEX                  = TAB[]
   EXCEPTIONS
     ATTACHMENT_NOT_EXIST             = 1
     OPERATION_NO_AUTHORIZATION       = 2
     PARAMETER_ERROR                  = 3
     X_ERROR                          = 4
     ENQUEUE_ERROR                    = 5
     OTHERS                           = 6
            .
  IF SY-SUBRC <> 0.
  ENDIF.
  CHECK TAB IS NOT INITIAL.
* 上传附件
*  DATA: PA_FNAME TYPE RLGRAP-FILENAME.
*
*  CONCATENATE '/usr/sap/' SY-SYSID '/SC_TEST.XLS' INTO PA_FNAME.
  OPEN DATASET PA_FNAME FOR OUTPUT IN BINARY MODE .
  LOOP AT TAB INTO REC.
    TRANSFER REC-LINE TO PA_FNAME.
  ENDLOOP.
  CLOSE DATASET PA_FNAME.
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-115699-1-1.html 上篇帖子: J2EE项目集成SAP的BO报表 下篇帖子: SAP WebService
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表