RSBBS 报表接口 query跳转 RRI

news/2025/2/19 18:36:20/

这里只讲RSBBS的goto query,不讲query里面的替换路径。

报表接口就是从一个query跳转到另一个目的地。从下面能看到,可以跳转到一个BW系统下的query,或者能跳转到ERP系统的一个ABAP report也行,或者可以通过archive link去从query里的行项目直接跳转到ERP系统的行项目的详细页。

 

但是它的系统逻辑是什么呢。

要从一个query去调用另一个query,那么首先要在RSBBS里定义发送方和接收方。

在Goto的时候,你选中的发送方query的单元格对应的选择条件会被用来填入接收方的过滤条件中。

RRI的过程

当开始Goto的时候,Report Report Interface首先收集你选中的这个query的单元格所在的行和列的global filter的信息,它是有哪些限制,是哪个会计年度,哪个公司代码,哪个销售组织等等(query的filter)。

然后还会收集dynamic filter的信息,它现在是有哪些下钻的维度,是在层级下钻的哪一层。

还有如果是个RKF,CKF那么里面还有哪些限制。

做完这些后,如果接收方query也有对应的filter变量,那么系统就会填充这些变量,如果没有,那就会自动把这些传到接收方去当做dynamic filter。

除此之外,还有几个比较智能的地方:

1. 如果接收方有变量,系统会尝试填充filter变量,如果没有合适的变量,那这些值就会被当成dynamic filter。(有一点就是层级的变量不会传输,会被当做query的属性而不是filter)

2.如果发送方和接收方存在特定关系,系统会尝试使用这层关系:

   比如:有组件的特性,那么对组件的限制会同样的用到接收方的组件父级。

              时间限制如果是隐性传输的,就会只把上级时间特性限制传到从属时间特性。

              参照特性会映射到主特性。

              属性限制会映射到主特性。

              导航属性限制也会映射到承载它的主数据的特性。特性限制会应用于导航属性。(发送方有城市这个下钻,接收方有对应的城市的导航属性邮编,那么对城市的限制会直接应用到它的导航属性邮编上,接收方会直接接收到这个城市的邮编)。

如果是要跳到其他系统,那么映射的规则是创建在目标系统里的,必须保证所有发送方的隐性映射规则的所有信息对象都得在目标系统中存在,否则跳转不起来。

具体操作

RSBBS进来:选一个query作为发送方,或者如果一个infoprovider的所有query都要跳,那就选infoprovider的所有query。

 创建:

在report里写要跳转的query

 在assignment details里面可以选具体的映射。不选的话是系统自动dynamic映射,也就是generic的类型。系统会自动帮你映射你现在的发送方的过滤值。

这里也就是发送方的各个信息对象,是怎么发送值出去的。

 

 类型如果选了变量,那么字段里就可以填你想填值的变量字段,后面的数据元素会自动带出来。也就意味着,你是把过滤器里的值直接发送给接收方去了。

如果选了delete,就是说不用管这些字段值,不把他们的值传递到你的目标接收方query。

 对于变量类型,slection type不用管,默认星号就是不管是什么类型都行。当然你想选也行,按照你自己的变量类型来选。但是不选完全不影响的。右边还有个打钩的required entry,不截图了。意思就是,打钩的话,你必须保证这个变量有值。强制有值。如果不大勾就是可选的,可以有值,也可以没有值。

如果你打钩了,但是这个变量没给值,或者没取到值,那系统拒绝跳转到接收方。

variable 和 generic的区别在于,如果选了变量,那么其实变量值会传递到下一个query的参数filter里。

如果选了generic,那其实是传递的query里面的值到dynamic filter,也就是会自动到目标query从下钻那里去过滤。

简言之,也就是说variable选项会从一个参数框那里直接过滤到你的目标query.

而generic是在目标query先把所有数据都拿出来,然后再像下钻一样的去过滤值。这种就是会花时间长一点。

除了这两个,还有一个infoobject类的。这个跟generic的执行逻辑是一样的,但是不同的在于,你要指定目标接收query的信息对象。适用的场景就是,如果在发送方query里有一个成本中心,但是接收query那边有个主成本中心,虽然信息对象不一样,但是值一样,就可以用这个infoobject。

还有个table field和url,分别是针对ERP的和网页的。也比较有意思,对于这个table field,是要把query的行直接链接到ERP的界面,涉及到安全连接。有空再写了。

举个例子

发送方query和接收方query有不同的层级特性,接收方query用的层级特性还有组件。两个query基于不同的provider,想要的是从成本要素跳转到对应的科目。

那么发送query是基于特性成本要素0COSTELMNT,接收query是基于特性科目编号0ACCOUNT。虽然名字不同,但是实际他俩意思一样的,key的值都是一样的,能互相印证的。同样的,0ACCOUNT和总账科目0GL_ACCOUNT也可以互相关联印证的。也就是说可以有一样的值。

那么这个接收query的0ACCOUNT层级有个科目表的组件chart of accounts。想要成功跳转,还得把这个科目表给填上,怎么办呢?

如果直接跳转,那跳转不过来的,因为还有个组件对象没值。所以得建一个变量,在接收query里建一个变量在0ACCOUNT上。

 在assignment details里面把这个变量对应到发送query的0COSTELEMNT这个特性里。


http://www.ppmy.cn/news/71624.html

相关文章

DS3800HPIB 有效执行任务的所有程序

DS3800HPIB是通用电气公司生产的Speedtronic Mark IV系列的一部分。这DS3800HPIB是一种大型电路板,具有八个连接端子,电路板两侧的尺寸各不相同。左下角有一个红色小方块,上面有一个拨动开关。这DS3800HPIB有大约50个天蓝色的小二极管。这DS3…

华纳云:JSP不能运行JavaScript怎么解决?

本篇内容主要讲解“JSP不能运行JavaScript怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JSP不能运行JavaScript怎么解决”吧! 一、JavaScript执行与页面渲染的顺序问题 JavaScript执行与页面渲…

Android之 ContentProvider内容提供者详解

一 四大组件 1.1 Activity组件,它一个单独的窗口,程序流程都必须在Activity中运行。 1.2 service组件,用于在后台完成用户指定的操作。 1.3 content provider组件,会为所有的应用准备一个内容窗口,并且保留数据库、…

实验四 面向对象分析与设计——UML类图与时序图

一、实验目的: 掌握面向对象分析中静态结构模型与动态行为模型的基本思想。学会识别系统中的类、类的属性和操作以及类之间的关系,掌握UML类图的绘制方法。了解时序图的作用和组成元素,掌握UML时序图的绘制方法。 二、实验仪器及实验环境&a…

C++14中lambda表达式新增加的features的使用

lambda表达式是在C11中引入的,它们可以嵌套在其它函数甚至函数调用语句中,C11中lambda表达式的使用参考:https://blog.csdn.net/fengbingchun/article/details/52653313 lambda表达式语法如下:除capture和body是必须的&#xff0c…

Windows免安装MySQL8.0

Windows免安装MySQL8.0 Windows 上的 MySQL 分为安装版和免安装版。 本文介绍如何在 Windows 上配置免安装版的 MySQL 8.0。 1、下载并安装 VC_redist.x64.exe Windows 版的 MySQL 8.0 依赖 Microsoft Visual C 2019 Redistributable Package(VC_redist.x64.exe…

io io server disconnect 客户端自动断开怎么办

在socket.io中,如果客户端自动断开连接,有几种常见的情况,例如网络中断或客户端页面被关闭。你可以通过以下方法处理客户端自动断开连接的情况: 在服务器端处理断开连接事件:在服务器端的socket连接处理函数中&#x…

浙江省选模拟题 圈草地

题目描述 在一片 n n n\times n nn的方格地上&#xff0c;种着 n n n块草地&#xff0c;每行每列都有且仅有一块草地。 现在你可以选择两块草地 ( x 1 , y 1 ) (x_1,y_1) (x1​,y1​)和 ( x 2 , y 2 ) (x_2,y_2) (x2​,y2​)&#xff0c;满足 x 1 < x 2 x_1<x_2 x1​&l…