SAP 如何通过程序创建一个请求

news2024/9/24 23:28:55

一:首先我们需要知道SAP的资源类型

PGMID       :程序ID 

OBJECT     :对象类型

OBJ_NAME:对象名称   SY-REPID

我们可以通过SE09/SE10来创建一个请求号也能看的出来

也可以通过SE03来查找

请求号相关的数据都在E07*的表里这边就不多说了

接下来我们建一个数据库表的请求需要用到的函数有

RS_CORR_INSERT

TADIR-OBJECT               对象类型 

DDIF_TABL_PUT            DDIF_TADIR-OBJECT_PUT

DDIF_TABL_ACTIVATE  DDIF_TADIR-OBJECT_ACTIVATE

TABLES:tadir.

DATA: it_dd03 TYPE TABLE OF dd03p   WITH HEADER LINE.

PERFORM fill_dd03 USING : 'MANDT    ' 'MANDT'     'X',
                          'TABNAME  ' 'TABNAME'   'X',
                          'OBJECTID ' 'CDOBJECTV' 'X',
                          'FIELDNAME' 'FIELDNAME' 'X',
                          'ERDAT    ' 'ERDAT'     'X',
                          'ERZET    ' 'ERZET'     'X',
                          'ERNAM    ' 'ERNAM'     'X',
                          'VALUE_OLD' 'CDFLDVALO' '',
                          'VALUE_NEW' 'CDFLDVALN' ''.

“获取当前程序所在的包
SELECT SINGLE * FROM tadir
        WHERE pgmid = 'R3TR'  AND
              object = 'PROG' AND
              obj_name = sy-repid.
PERFORM create_table TABLES it_dd03
                         USING '表名' '简短描述' tadir-devclass .

*&---------------------------------------------------------------------*
*&      Form  fill_dd03
*&---------------------------------------------------------------------*
FORM fill_dd03 USING fldname rollname key.
  it_dd03-fieldname = fldname.    "字段名
  it_dd03-rollname  = rollname.   "数据元素 (语义域)
  it_dd03-keyflag   = key.        "标识表格的关键字段
  APPEND it_dd03. CLEAR it_dd03.
ENDFORM.                    "fill_dd03




*&---------------------------------------------------------------------*
*& 创建透明表
*&---------------------------------------------------------------------*
FORM create_table TABLES transfld STRUCTURE dd03p
                  USING transtab ddtext devclass .
  DATA: objstr(40),
        reqnum TYPE trkorr.
  DATA: wa_02v TYPE dd02v ,
        wa_09l TYPE dd09v ,
        subrc  TYPE sy-subrc.
  DATA: lt_03p TYPE TABLE OF dd03p WITH HEADER LINE .

  SELECT SINGLE * INTO wa_02v FROM dd02v
    WHERE tabname = transtab AND
          tabclass = 'TRANSP'.
  IF sy-subrc = 0.
    MESSAGE s000(oo) WITH '透明表' transtab '已存在'.
    RETURN.
  ENDIF.

***传输请求
  CONCATENATE 'TABL' transtab INTO objstr.
  CALL FUNCTION 'RS_CORR_INSERT'
    EXPORTING
      object              = objstr
      object_class        = 'DICT'
      devclass            = devclass
      korrnum             = reqnum
      master_language     = sy-langu
      global_lock         = 'X'
      mode                = 'I'
      suppress_dialog     = ''
    IMPORTING
      ordernum            = reqnum
    EXCEPTIONS
      cancelled           = 1
      permission_failure  = 2
      unknown_objectclass = 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.

***创建透明表并激活
  wa_02v-tabname    = transtab.
  wa_02v-ddtext     = ddtext.
  wa_02v-ddlanguage = sy-langu.
  wa_02v-tabclass   = 'TRANSP'.
  wa_02v-as4user    = sy-uname.
  wa_02v-contflag   = 'C'.
  wa_02v-mainflag   = 'X'.
  wa_09l-tabname    = transtab.
  wa_09l-tabart     = 'APPL1'.
  wa_09l-tabkat     = 6.

  LOOP AT transfld.
    lt_03p-tabname    = transtab.
    lt_03p-ddlanguage = sy-langu.
    lt_03p-position   = sy-tabix.
    lt_03p-fieldname  = transfld-fieldname.
    lt_03p-rollname   = transfld-rollname.
    lt_03p-notnull    = 'X'.
    lt_03p-keyflag    = transfld-keyflag.
    APPEND lt_03p.
    CLEAR lt_03p.
  ENDLOOP.

  CALL FUNCTION 'DDIF_TABL_PUT'
    EXPORTING
      name              = transtab
      dd02v_wa          = wa_02v
      dd09l_wa          = wa_09l
    TABLES
      dd03p_tab         = lt_03p
    EXCEPTIONS
      tabl_not_found    = 1
      name_inconsistent = 2
      tabl_inconsistent = 3
      put_failure       = 4
      put_refused       = 5
      OTHERS            = 6.

"激活这个表
  IF sy-subrc = 0.
    CALL FUNCTION 'DDIF_TABL_ACTIVATE'
      EXPORTING
        name        = transtab
      IMPORTING
        rc          = subrc
      EXCEPTIONS
        not_found   = 1
        put_failure = 2
        OTHERS      = 3.
    IF sy-subrc <> 0 OR ( subrc > 4 ).
      MESSAGE s000(oo) WITH '创建成功,激活失败,请手工激活表'.
    ELSE.
      MESSAGE s000(oo) WITH '创建成功,激活成功'.
    ENDIF.
  ELSE.
    MESSAGE s000(oo) WITH  '创建失败'.
  ENDIF.
ENDFORM.                    "create_table

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

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

相关文章

IP 地址分类

IP 地址有两个版本&#xff1a; IPv4 和 IPv6 &#xff0c;目前使用最广泛的还是 IPv4 &#xff0c; IPv6 出现的目的主要是解决 IPv4 地址耗尽的问题。为了方便起见&#xff0c;在这里我们说的 IP 地址主要是指 IPv4 地址。 IP 地址是由 32 位比特组成&#xff0c;比如这个地…

初步认识二叉树

二叉树的概念及结构 二叉树在我们的想象中长这样 下图是满二叉树 二叉树有左右子树 1是根结点&#xff0c; 1的左子树是2&#xff0c;右子树是3&#xff1b; 2是根结点&#xff0c; 2的左子树是4&#xff0c;右子树是5&#xff1b; 3是根结点&#xff0c; 3的左子树是6…

odoo17 精减设置模块

odoo17 精减设置模块 设置模块中好多平时用不到的功能&#xff0c;如何隐藏&#xff0c;采取了继承修改方式&#xff0c;代码如下: <?xml version"1.0" encoding"utf-8" ?> <odoo><record id"resconfig_ex_form" model"i…

《人工智能商》:谁掌握了人工智能时代的思考方式,谁就掌握了未来

文/石墨杨&#xff08;shimoyang11&#xff09; 在可以预见的未来&#xff0c;马路上行驶着自动驾驶的汽车&#xff0c;工厂里忙碌着不知疲倦的机器人&#xff0c;网络电商会精准推荐你需要的商品&#xff0c;社交网站自动帮你识别令你心仪的朋友…… 《人工智能商》一书&#…

穿黑风衣的牛奶--生产问题之CompletableFuture默认线程池踩坑,请务必自定义线程池

前言 先说结论&#xff0c;没兴趣了解原因的可以只看此处的结论 CompletableFuture是否使用默认线程池的依据&#xff0c;和机器的CPU核心数有关。当CPU核心数-1大于1时&#xff0c;才会使用默认的线程池&#xff0c;否则将会为每个CompletableFuture的任务创建一个新线程去执…

代码随想录算法(哈希表二)

目录 454四数相加 15三数之和 双指针法 18四数之和 剪枝操作 454四数相加 暴力操作就是四个for循环 这个题目是用哈希表来解答 我们可以将ab进行一个遍历放到一个数组里面 再将cd来放到一个数组中 来看一下是否cd中有ab所需要的值 由于这个题目是int这种 所以只能从set 和…

vue中怎么自定义组件

目录 一&#xff1a;功能描述 二&#xff1a;实现过程 一&#xff1a;功能描述 在开发过程中我们经常需要自定义组件完成特定的功能&#xff0c;比如用户详情页&#xff0c;我增加一个调整余额的按钮&#xff0c;点击以后需要打开一个调整余额对话框&#xff0c;输入调整的金…

Babel 7入门基础知识 全面 实践案例篇【1】推荐。

babel前面我们梳理总结 webpack入门基础知识的时候已经用过了。趁着这个机会顺便把Babel基础知识回顾梳理一下&#xff0c;也欢迎正在使用babel的同学一起交流探讨&#xff0c;感谢。 目录 一、Babel是什么&#xff1f; 二、.Babel是如何工作的呢&#xff1f;或者原理是什么…

Windos 执行.sh文件提示没有足够权限执行的解决办法

找到Git安装目录下的sh.exe文件 右键以管理员方式运行 cd到.sh文件所在目录&#xff0c;注意使用 / 而不是 \ 执行.sh文件即可

JavaScript中闭包的概念与其造成的性能问题

如果一个函数没有访问任何外部作用域的变量或方法&#xff0c;那么它其实是拥有闭包特性的&#xff0c;因为在 JavaScript 中&#xff0c;每个函数都可以理解为对其创建时所处作用域的引用。从这个角度来说&#xff0c;即使普通函数本身并没有捕获外部变量&#xff0c;但它们仍…

JAVA集中学习第四周学习记录(四)

系列文章目录 第一章 JAVA集中学习第一周学习记录(一) 第二章 JAVA集中学习第一周项目实践 第三章 JAVA集中学习第一周学习记录(二) 第四章 JAVA集中学习第一周课后习题 第五章 JAVA集中学习第二周学习记录(一) 第六章 JAVA集中学习第二周项目实践 第七章 JAVA集中学习第二周学…

WPF篇(9)-CheckBox复选框+RadioButton单选框+RepeatButton重复按钮

CheckBox复选框 CheckBox继承于ToggleButton&#xff0c;而ToggleButton继承于ButtonBase基类。 案例 前端代码 <StackPanel Orientation"Horizontal" HorizontalAlignment"Center" VerticalAlignment"Center"><TextBlock Text"…

Redis的过期策略与内存淘汰机制详解

文章目录 Redis的过期策略1. 定时删除2. 惰性删除3. 定期删除 Redis的内存淘汰机制1. noeviction2. volatile-random3. volatile-ttl4. volatile-lru5. volatile-lfu6. allkeys-random7. allkeys-lru8. allkeys-lfu LRU与LFU算法总结 Redis作为一种高性能的键值对存储系统&…

C语言 之 理解指针(9)与指针相关的理解题

文章目录 代码1代码2代码3代码4代码5代码6代码7 本篇内容接上一篇&#xff0c;对指针进行一个更深入的理解 建议没看过 上一篇的可以看看上一篇&#xff0c;当然不看也可以。 建议先自行完成再看答案哟 代码1 #include <stdio.h> int main() {int a[5] { 1, 2, 3, 4, …

B站千亿级点赞系统服务架构设计

B站千亿级点赞系统服务架构设计 原文链接&#xff1a;https://www.bilibili.com/read/cv21576373/ 原文作者&#xff1a;哔哩哔哩技术团队-芦文超 点赞的功能太过于简单不再赘述&#xff0c;大家可以点击原文链接简单看下便可知晓。 本讲结合B站知名UP主陆总监的一期视频(h…

【vue3|第21期】Vue3中Vue Router的push和replace方法详解

日期&#xff1a;2024年8月9日 作者&#xff1a;Commas 签名&#xff1a;(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释&#xff1a;如果您觉得有所帮助&#xff0c;帮忙点个赞&#xff0c;也可以关注我&#xff0c;我们一起成长&#xff1b;如果有不对的地方&#xff…

Android系统Android.bp文件详解

文章目录 1. 基本语法结构2. 常见模块类型3. 模块属性常见属性包括&#xff1a; 4. 具体示例5. 高级功能5.1. 条件编译5.2. 变量定义与使用5.3. 模块继承 6. 总结 Android.bp 是 Android 构建系统&#xff08;Android Build System&#xff09;中的配置文件&#xff0c;用于描述…

C语言典型例题31

《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 习题2.8 请编写程序将China译为密码&#xff0c;密码的规律是&#xff1a;用原来字母后面的第4个字母代替原来的字母。 例如:C后面的4个字母是G&#xff0c;h后面第4个字母为l 代码&#xff1a; //《C程序设计教程…

TinyLLaVA: A Framework of Small-scale Large Multimodal Models

发表时间&#xff1a;22 Feb 2024 论文链接&#xff1a;https://arxiv.org/pdf/2402.14289 作者单位&#xff1a;SKLCCSE, Institute of Artificial Intelligence, Beihang University, Beijing, China Motivation&#xff1a;当前的大语言模型的参数量太大了&#xff0c;作…

flask学习-day1

介绍 django是大而全&#xff0c;flask是轻量级的框架 django提供非常多组件&#xff1a;orm/session/cookie/admin/form/modelform/路由/视图/模板/中间件/分页/auth/contentype/缓存/信号/多数据库连接 flask本身没有太多的功能&#xff1a;路由/试视图/模板/session/中间件…