SAP BW/BPC:实现自动执行BPC跑包程序

news2024/9/22 5:33:46

作者 idan lian  如需转载备注出处

如果对你有帮助,请点赞收藏~~~

用途:创建程序,跑BPC包,把数据从BW应用层跑到BPC,程序可放到处理链或自动作业中,实现定时跑包。

1.步骤

首先需要BPC顾问创建一个他们手动执行的包,维护好相关的参数

在BW系统参考标准程序直接copy后面的代码出来,一些变量需要替换,需要替换的在下面的程序里标黄

可以打断点debug,参考程序 UJD_TEST_PACKAGE 里面有需要的变量

也可以直接看一下BPC是不是在这个程序创建了变式,变式里选值可以copy出来

如原始PROMPT

%InforProvide%#ZCPBPC0001##%SELECTION%#<?xml version="1.0" encoding="utf-16"?><Selections xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><Selection Type="Selection"><Attribute><ID>ZTIME</ID><Operator>1</Operator><LowValue>2023.01</LowValue><HighValue /></Attribute></Selection><Selection Type="FieldList"><FieldID>0DATAPAKID</FieldID><FieldID>0INFOPROV</FieldID><FieldID>0RECORD</FieldID><FieldID>0RECORDMODE</FieldID><FieldID>0RECORDTP</FieldID><FieldID>0REQTSN</FieldID><FieldID>ZACCOUNT</FieldID><FieldID>ZAUD_RAIL</FieldID><FieldID>ZCATEGORY</FieldID><FieldID>ZENTITY</FieldID><FieldID>ZFLOW</FieldID><FieldID>ZINTERCO</FieldID><FieldID>ZMISC</FieldID><FieldID>ZOBJECT</FieldID><FieldID>ZPROJECT</FieldID><FieldID>ZRPT_CURR</FieldID><FieldID>ZSCOPE</FieldID><FieldID>ZSUBJECT</FieldID><FieldID>ZTIME</FieldID><FieldID>ZTYPE</FieldID></Selection></Selections>

2.程序


*&---------------------------------------------------------------------*
*& Report ZBWR_BPC_ZCPBPC0001
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZBWR_BPC_ZCPBPC0001.
 DATA : USER               TYPE UJ_USER_ID, " 执行包用户
         LO_PACKAGE         TYPE REF TO CL_UJD_PACKAGE,
         LT_CONSTANT        TYPE UJD_TH_VALUE,
         LO_PACKAGE_CONTEXT TYPE REF TO CL_UJD_PACKAGE_CONTEXT,
         LV_RSPC_LOGID      TYPE RSPC_LOGID,
         PACKAGE1           TYPE UJ_PACKAGE_ID,    "执行包 通用模型
         TEAM               TYPE UJ_TEAM_ID,       "团队
         GROUP              TYPE UJ_PACK_GRP_ID,   "组,包所在的组(默认都是COPM )
         SCHEDULE           TYPE UJ_STRING,
         PROMPT             TYPE STRING,           "执行包的条件
         LT_PROMPT          TYPE STRING_TABLE,
         IF_MSG             TYPE UJ_BOOL,           "默认N
         LTH_ANSWER_PROMPT  TYPE UJD_TH_VALUE,
         LS_ANSWER_PROMPT   LIKE LINE OF LTH_ANSWER_PROMPT,
         L_ERRORMSG         TYPE UJ_STRING,
         L_OX               TYPE REF TO CX_ROOT,
         LT_MESSAGE         TYPE UJ0_T_MESSAGE,
         LS_SCHEDULE_INFO   TYPE UJD_S_SCHEDULE_INFO,
         LS_SCHEDULE_INFO2  TYPE UJD_S_SCHEDULE_INFO2,
         LF_SCHEDULE        TYPE UJ_FLG,
         LF_DEBUG           TYPE UJ_FLG,
         LV_FISCYEARPE      TYPE ZEL_ZDATE,
         L_TIME             TYPE CHAR32.
“BPC报表取数日期”
 SELECT SINGLE ZDATE FROM ZBWT_REPORT_DATE INTO LV_FISCYEARPE.

*  IF LV_FISCYEARPE IS NOT INITIAL.
  L_TIME = LV_FISCYEARPE+0(4) && '.' && LV_FISCYEARPE+4(2).
  USER = SY-UNAME.
  CREATE OBJECT LO_PACKAGE.
  CREATE OBJECT LO_PACKAGE_CONTEXT.

  PACKAGE1 = 'S_01'."Package ID
  GROUP = 'YH_CONSOLIDATION'."Package group ID
  SCHEDULE = '<SCHEDULING><IMMEDIATE>Y</IMMEDIATE><STATE>0</STATE><PERIOD>N</PERIOD></SCHEDULING>'."SCHEDULE


  CONCATENATE
  '%InforProvide%' CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB 'ZCPBPC0001'"CP名称
                  CL_ABAP_CHAR_UTILITIES=>CR_LF
  '%SELECTION%' CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB
"PROMPT,太长了得换行,从变式里面  点值可以copy出来
'<?xml version="1.0" encoding="utf-16"?>'
'<Selections xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">'
'<Selection Type="Selection">'
'<Attribute><ID>ZTIME</ID><Operator>1</Operator><LowValue>' L_TIME '</LowValue><HighValue /></Attribute></Selection>'
'<Selection Type="FieldList">'
'<FieldID>0DATAPAKID</FieldID>'
'<FieldID>0INFOPROV</FieldID>'
'<FieldID>0RECORD</FieldID>'
'<FieldID>0RECORDMODE</FieldID>'
'<FieldID>0RECORDTP</FieldID>'
'<FieldID>0REQTSN</FieldID>'
'<FieldID>ZACCOUNT</FieldID>'
'<FieldID>ZAUD_RAIL</FieldID>'
'<FieldID>ZCATEGORY</FieldID>'
'<FieldID>ZENTITY</FieldID>'
'<FieldID>ZFLOW</FieldID>'
'<FieldID>ZINTERCO</FieldID>'
'<FieldID>ZMISC</FieldID>'
'<FieldID>ZOBJECT</FieldID>'
'<FieldID>ZPROJECT</FieldID>'
'<FieldID>ZRPT_CURR</FieldID>'
'<FieldID>ZSCOPE</FieldID>'
'<FieldID>ZSUBJECT</FieldID>'
'<FieldID>ZTIME</FieldID>'
'<FieldID>ZTYPE</FieldID>'
'</Selection></Selections>'
  INTO PROMPT.

  SPLIT PROMPT AT CL_ABAP_CHAR_UTILITIES=>CR_LF INTO TABLE LT_PROMPT.
*    SPLIT l_prompt AT cl_abap_char_utilities=>cr_lf INTO TABLE lt_prompt.
  "end frp270312
  LOOP AT LT_PROMPT ASSIGNING FIELD-SYMBOL(<LS_PROMPT>).
    SPLIT <LS_PROMPT> AT CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB
      INTO LS_ANSWER_PROMPT-FIELDNAME LS_ANSWER_PROMPT-VALUE.
    INSERT LS_ANSWER_PROMPT INTO TABLE LTH_ANSWER_PROMPT.
  ENDLOOP.

  TRY.

      CL_UJD_SCHEDULE_PARSE=>PARSE_7X_FORMAT( EXPORTING I_SCHEDULE_STR = SCHEDULE
                                              IMPORTING ES_SCHEDULE_INFO = LS_SCHEDULE_INFO
                                                        ES_SCHEDULE_INFO_NEW = LS_SCHEDULE_INFO2 ).

      IF LS_SCHEDULE_INFO-IFIMMEDIATE = UJ00_CS_BOOL-YES.

        LF_SCHEDULE = ABAP_FALSE.

      ELSE.

        LF_SCHEDULE = ABAP_TRUE.

        LS_SCHEDULE_INFO2-MODULE_ID = UJD0_CS_MODULE_ID-PACKAGE.

      ENDIF.


      CREATE OBJECT LO_PACKAGE.

      CALL METHOD LO_PACKAGE->RUN_PACKAGE
        EXPORTING
          I_APPSET_ID       = 'YH_BPC' "Environment
          I_APPL_ID         = 'Consolidation' "Model ID
          I_TEAM_ID         = TEAM
          I_GROUP_ID        = GROUP
          I_PACKAGE_ID      = PACKAGE1
          ITH_ANSWER_PROMPT = LTH_ANSWER_PROMPT
          IS_SCHEDULE_INFO  = LS_SCHEDULE_INFO2
          IF_SCHEDULE       = LF_SCHEDULE
          IF_DEBUG          = 'X'.


      "Begin XUQIA 19122017 Note 2579937
      CL_UJA_ACTVTY_MGR=>RECORD_LOGON_ACTIVITY(
        EXPORTING
          I_APPSET_ID = ' YH_BPC '"Environment
          I_ACTIVITY  = CL_UJA_ACTVTY_MGR=>GC_ACT_REPORT_UJD_TEST_PACKAGE ).
      "End XUQIA 19122017 Note 2579937
****************************************************************************************



***************************************************************************************************

    CATCH CX_ROOT INTO L_OX.                             "#EC CATCH_ALL
      CALL FUNCTION 'UJ0_CONV_EX2MSG'
        EXPORTING
          IO_EXCEPTION     = L_OX
        IMPORTING
          ET_MESSAGE_LINES = LT_MESSAGE.

      CALL FUNCTION 'UJ0_CONV_MSG2STR'
        EXPORTING
          IT_MSG = LT_MESSAGE
        IMPORTING
          E_STR  = L_ERRORMSG.


      CALL FUNCTION 'DB_ROLLBACK'.
      MESSAGE  '清包失败!' TYPE 'S' DISPLAY LIKE 'E'.
      RETURN.
  ENDTRY.

以上为上数包程序,清数同理,让BPC顾问建一个清数包即可,参照以上创建清数程序。

将程序放到处理链或设置定时job即可。

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

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

相关文章

数据挖掘之分类算法

分类算法是数据挖掘中常用的一类算法&#xff0c;其主要任务是根据已知的训练数据&#xff08;即带有标签的数据&#xff09;构建模型&#xff0c;然后利用该模型对新的数据进行分类。分类算法广泛应用于金融、医疗、市场营销等领域&#xff0c;用于预测、决策支持等任务。以下…

并查集【算法 12】

并查集 (Union-Find) 的基础概念与实现 并查集&#xff08;Union-Find&#xff09;是一种用于处理不相交集合&#xff08;disjoint sets&#xff09;的数据结构&#xff0c;常用于解决连通性问题。典型的应用场景包括动态连通性问题&#xff08;如网络节点连通性检测&#xff0…

数据库sqlite3

数据库 数组、链表、变量 ----->内存&#xff1a;程序运行结束&#xff0c;掉电数据丢失 文件 ----------------------->硬盘&#xff1a;程序运行结束&#xff0c;掉电数据不丢失 数据库&#xff1a;专业存储数据、大量数据 ----->硬盘 常用数据库&#xff1a; …

linux 如何查看cpu核心数量

在Linux系统中&#xff0c;有多种方法可以查看CPU的核心数量。 一、lscpu lscpu命令是最直接的方法之一&#xff0c;它可以显示CPU架构信息&#xff0c;包括CPU数量、每个CPU的核心数、每个核心的线程数等。要查看CPU核心数量&#xff0c;可以直接查看lscpu命令输出的Core(s) …

力扣面试150 删除排序链表中的重复元素 II 哑兵 双指针

Problem: 82. 删除排序链表中的重复元素 II &#x1f468;‍&#x1f3eb; 灵神题解 Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* List…

企业车辆|基于SprinBoot+vue的企业车辆管理系统(源码+数据库+文档)

企业车辆管理系统 基于SprinBootvue的企业车辆管理系统 一、前言 二、系统设计 三、系统功能设计 系统功能实现 后台模块实现 管理员模块实现 驾驶员模块实现 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主…

悬浮翻译软件有哪些?试试这些利器

在观看外国电影或电视剧的奇幻旅程中&#xff0c;面对字幕如流星般划过屏幕&#xff0c;是否渴望能即时捕捉每一个细微的情感涟漪与幽默火花&#xff0c;让体验更加完整无憾&#xff1f; 此刻&#xff0c;无需再为语言障碍而烦恼&#xff01;悬浮翻译器电脑版作为你贴心的跨文…

新买的笔记本只有一个C盘,进行磁盘分区的操作

开始是这样的: 快捷键 window x 找到磁盘管理 102,400M 100GB 然后右键重命名磁盘名字 最终得到结果如下:

SpringBoot+Vue的AI智能图书馆系统来袭!!

SpringBootVue的AI智能图书馆系统来袭&#xff01;&#xff01; 一、项目介绍用户&#xff08;借阅人&#xff09;图书管理员系统管理员 二、相关技术栈三、项目演示管理员登录用户登录 四、相关地址总结 大家好&#xff0c;这里是程序猿代码之路。在数字化时代的浪潮中&#x…

Python办公自动化 获取文本数据 支持多种类型文件

学好办公自动化,走遍天下都不怕&#xff01;&#xff01; 前面我们已经学习了&#xff0c;如何用python的下载安装以及入门基础知识&#xff0c;并且也知道如何使用python自动处理Excel文件数据、如何批量生成Word文件、如何对数据分析后生成洞察报告、如何用python实现自动发送…

【自由能系列(初级)】自由能原理——神经科学的“能量守恒”方程

【通俗理解】自由能原理——神经科学的“能量守恒”方程 关键词提炼 #自由能原理 #KL散度 #生成模型 #识别密度 #观测数据 #神经科学 第一节&#xff1a;自由能原理的类比与核心概念 1.1 自由能原理的类比 自由能原理在神经科学中的应用&#xff0c;可以类比为一个“大脑的…

Java 面试题:HTTP版本演变--xunznux

文章目录 HTTP版本演变HTTP/0.9HTTP/1.0HTTP/1.1新引入&#xff1a;问题&#xff1a;长连接是什么&#xff1a;管道网络传输&#xff1a;队头阻塞是什么&#xff1f;解决http队头阻塞的方法&#xff1a;HTTP1.1常见性能问题为解决HTTP1.1性能问题而提出的常见优化手段 HTTP/21、…

数据库(专业存储数据)

数组、链表、变量----->内存&#xff1a;程序运行结束&#xff0c;数据丢失 文件-------------->硬盘 数据库&#xff1a;专业存储数据&#xff0c;大量数据----------->硬盘 一、数据库文件与普通文件区别: 1.普通文件对数据管理(增刪改查)效率低 2.数据库对数据…

UNI-APP 打包构建 APK

UNI-APP 打包构建 APK 前言一、WINDOWS&#xff08;在线 - 纯命令版&#xff09;依赖其他前置准备实现原理操作步骤 二、WINDOWS&#xff08;离线 - Android Studio 版&#xff09;依赖&#xff08;首次构建需要联网安装依赖&#xff09;其他前置准备实现原理操作步骤 三、WIND…

【QT】学习笔记:处理数据库 SQLite

在 Qt 中使用 SQLite 数据库非常简单&#xff0c;Qt 提供了 QSqlDatabase 和 QSqlQuery 类来处理数据库的连接、查询、插入、更新和删除等操作。下面是一个示例程序&#xff0c;展示如何在 Qt 中使用 SQLite 数据库。 示例代码 1. 项目配置 首先&#xff0c;确保在项目的 .p…

李宏毅 机器学习与深度学习【2022版】 03

文章目录 一、卷积神经网络CNN二、使用验证集&#xff0c;模型还过拟合的原因三、深度学习的优点四、Spatial Transformer Layer 一、卷积神经网络CNN CNN在影像识别中&#xff0c;表现比较好。 每个感受野 receptive field 都有一个神经元去探测鸟嘴&#xff0c;是没有没要的…

Vue(三)内置指令v-text、html、cloak、once、pre;自定义指令的三种方式、Vue生命周期

文章目录 1. 内置指令1.1 v-text、v-html指令1.2 v-cloak指令1.3 v-once指令1.4 v-pre指令 2. 自定义指令(directives)2.1 函数式2.2 对象式2.3 注意点 3. 生命周期3.1 挂载流程3.2 更新流程3.3 销毁流程 1. 内置指令 1.1 v-text、v-html指令 v-text与v-html都是向所在的节点…

0. Spring 的 控制反转和依赖注入

提起Spring&#xff0c;很多人第一反应就是IOC和AOP。那IOC到底是什么东东&#xff1f; IOC&#xff08;Inversion of Control) 翻译过来叫控制反转。DI&#xff08;Dependency Injection&#xff09;翻译过来叫依赖注入。这时候就应该掏出我们的人生三问了。 控制反转用人话说…

【数据结构】线性表的链式表示(单链表)

计算机考研408-数据结构笔记本之——第二章 线性表 2.3 线性表的链式表示&#xff08;单链表的定义、基本操作&#xff1a;初始化/插入/删除/查找与建立&#xff09;

苹果 iOS / iPadOS 18 beta8和iOS / iPadOS 18.1 beta3版本更新

苹果今日向iPhone和iPad用户推送了 iOS / iPadOS 18 开发者预览版 Beta 8 更新&#xff08;内部版本号&#xff1a;22A5350a&#xff09;和iOS / iPadOS 18.1 开发者预览版 Beta 3 更新&#xff08;内部版本号&#xff1a;22B5034e&#xff09;&#xff0c;本次更新距离上次发布…