`
shz2008bj
  • 浏览: 488635 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

PI消息映射中的函数介绍

阅读更多

转自:http://help.sap.com/saphelp_nw04/helpdata/en/43/c4cdfc334824478090739c04c4a249/content.htm

General

Values of elements or attributes of the XML message (the payload ) are technically speaking a string. Therefore, all standard functions that operate on field values expect string arguments and return a string value. Nevertheless, the transferred value can of course have a different semantic data type, namely, the one that you specified when you defined the schema for the payload for the field. Standard functions exhibit the following standard behavior:

      Depending on the standard function, data type conversions are used to ensure that the values are transferred in a format suitable for the function (using a cast ). If the value cannot be interpreted, the mapping runtime triggers a Java exception.

      If-clauses evaluate conditions that return Boolean values. Standard functions that return Boolean values return the string true or false . Standard functions that expect Boolean values interpret the values “1” and “true” (not case-sensitive) as true and all other values as false .

Note

See also: Runtime Behavior

Overview of Functions

Data-flow objects for standard functions are structured as follows:

      Most data-flow objects have two or three inbound channels on the left-hand side, and one outbound channel on the right-hand side.

      If -functions are shaped as rhombuses or triangles.

      There are also conversion functions with one inbound and outbound channel and functions that return a value without any input.

      Standard functions that require additional specifications are indicated with a star (This graphic is explained in the accompanying text ). To call the dialog for Function Properties , double click the data-flow object.

The following figure provides an overview of all the different forms of data-flow objects:

This graphic is explained in the accompanying text

To illustrate how the individual functions are used, the input boxes in the figure above have the variables X , Y , Z or I , and the result variable is either R or O . All standard functions in the tables below are described using these input and output variables. In the data-flow editor, other data-flow objects that are connected to the functions using the connecting boxes either return the input values or receive the result of the operation. You can combine the functions in any way you require (provided that the values transferred to a function can be interpreted).

Function Category: Arithmetic

You can only enter numerical values for this category (this includes values with digits after the decimal point). If the value cannot be interpreted as a digit, then the system triggers a Java exception. In the default setting, all calculations are executed with the precision of the Java data type float . The format of the result value depends on the result:

      If the result is a value with digits after the decimal point, these remain unchanged.

      Exception: If a zero follows the decimal point, then this is cut off. This means that the result of the calculation 4.2 0.2 is 4 and not 4.0 .

Also note that Java values of type float are converted to the second system before the calculation. The result is calculated there and then this result is converted back to decimal format. The conversion may result in positions after the decimal point that are periodically repeated and then automatically cut off. In the decimal system, this can result in inaccurate results (example: 2.11 + 22.11 = 24.220001). If the number of positions after the decimal point is to be restricted to two, for example, in the case of values for a currency, you can format the values after the calculation by using the standard function FormatNum .

Note

If the particular usage case requires more detailed results, you can also select the decimal system as the basis for the calculations. The Java class BigDecimal is used for internal purposes. For more details see SAP Note 958486.

Function Name

Function

add

R = X + Y

subtract

R = X - Y

equalsA

R = true , if value X equals value Y , otherwise R = false . The values are interpreted numerically, therefore the value 1.5 is the same as 1.50 .

abs

O = Absolute value of I

sqrt

R is the square root of X

sqr

R is the square of X

sign

R = 1 , when X is a positive number

R = 0 , when X equals 0

R = 1 , when X is a negative number

neg

R = -X

1/x

R is the reciprocal of X

power

R = XY

less

true , when X < Y , otherwise false

greater

true , when X > Y , otherwise false

multiply

R = X * Y

divide

R = X / Y

max

R = Maximum of values X and Y

min

R = Minimum of values X and Y

ceil

O = The smallest possible integer value (up to minus 'infinite’) that is not smaller than the argument I . Corresponds to the Java function java.lang.Math.ceil() .

floor

O = The largest possible integer value that is not larger than the argument I . Corresponds to the Java function java.lang.Math.floor() .

round

O = Integer value that is closest to the value of argument I . Corresponds to the Java function java.lang.Math.round() .

counter

O = Number of calls for this target-field mapping where you specify the initial value and the increment of the counter in the function properties.

FormatNum

Converts I according to a pattern that you define using the function properties. The possible patterns are the same as in the Java class java.text.DecimalFormat .

Function Category: Boolean

All functions in this category expect Boolean input values (see above).

Function Name

Function

And

R is true if X and Y have the value true . Otherwise, R is false .

Or

R is true if X or Y have the value true . Otherwise, R is false .

Not

      O is false if I has the value true

      O is true if I has the value false

Equals

Compares both Boolean values X and Y and returns true if both are equal, otherwise false . Non-Boolean values are interpreted as false (see above).

Use the functions equalsS or compare from the Text category to compare strings.

notEquals

R = Not(Equals(X,Y))

if

      If condition X is fulfilled (returns true ): R = Y

      If condition X is not fulfilled (returns false ): R = Z

ifWithoutElse

If condition X is satisfied (returns true ): R = Y . Which Else value the function should return depends on various different factors (see detailed documentation).

Function Category: Constants

Since these functions do not have any input values, they are generating functions .

Function

Use

Constant

O gets any string constant that you can enter in the dialog for the function properties.

CopyValue

For a frequently occurring element, copies the value at a defined position in the source structure to the assigned target field.

sender

O gets the name of the sender business system. Test_Sender_System is output when you test the message mapping in the Integration Builder.

receiver

O returns the name of the receiver business system. Test_Receiver_System is output when you test the message mapping in the Integration Builder.

Function Category: Conversions

Function

Use

FixValues

Executes a value mapping using a fixed value table that you complete using the function properties. The table is saved together with the most current message mapping and can only be used once.

Value mapping

Executes a value mapping for the value I entered. In the function attributes, assign the both input value I and source value O to a representation in the value-mapping table. In this way, you can assign source and target structure fields to a representation. You complete the value-mapping table on the configuration maintenance screen in the Integration Builder. Since these entries are not available at design time, the mapping result is just an estimate when you test the message mapping. See also Value Mapping

Note

The runtime interface for value mappings has changed for XI 3.0. However, XI 2.0 message mappings that call the Value Mapping function still function using the old runtime interface. To use the function parameters in the new runtime interface, choose XI 3.0 Interface .

In the function properties for the standard function Value mapping , in the fields Agency and Schema , enter the key for the source or target value. These values can have any values. However, you can also refer to the fields SenderParty , SenderService , ReceiverParty or ReceiverService . The mapping runtime replaces these values at runtime with the values from the corresponding fields in the message header of the message for which a value mapping is being executed.

Note

In the field Agency you can also enter the name of a business system. When transporting value mappings from one Integration Directory to another, the Integration Builder sees if you have entered a business system as the agency and converts it during the transport (see also: Configuring Groups and Transport Targets ).

Function Category: Date

The following functions enable you to define the date format for the source or target format using the dialog for the function properties.

Note

The format adheres to the convention as defined in the standard Java class java.util.SimpleDateFormat . The function properties dialog provides you with a wizard that you can use to enter the most frequently used date formats.

Function

Use

currentDate

Returns the current date using O . This function is a generating function .

DateTrans

Converts date format I to another date format O .

DateBefore

R = true , when date X comes before date Y, otherwise false

DateAfter

R = true , when date X comes after date Y , otherwise false

CompareDates

R = 1 , when date X is after date Y
R = 0 , when date X is the same as date Y
R = -1 , when date X is before date Y

Extended Settings

It is not only date formats that are country-specific; the count for weekdays and calendar weeks is also country-specific. You can specify the relevant conventions for these in the function properties:

      First Weekday
Specifies which day of the week is recorded as the first weekday. In the United States, for example, the first weekday is Sunday, while in France, it is Monday. The count begins at 1. The mapping runtime sets this attribute using the Java method
setFirstDayOfWeek() . For more information, see the Java documentation under http://java.sun.com/j2se/1.4.2/docs/api/java/util/Calendar.html#setFirstDayOfWeek(int) .

      Minimum Number of Days Required in First Week
Specifies how many days the first week of the year must have for it to be considered the first calendar week. The mapping runtime sets this attribute using the Java method
setMinimalDaysInFirstWeek() . For more information, see the Java documentation under http://java.sun.com/j2se/1.4.2/docs/api/java/util/Calendar.html#setMinimalDaysInFirstWeek(int) .

Using the checkbox Calendar Is Lenient , you can control whether invalid dates trigger exceptions or not. If the checkbox is checked, the mapping runtime permits a date such as February 942, 1996, which is then interpreted as the 941st day after February 1, 1996. An exception is not triggered. The mapping runtime sets this attribute using the Java method setLenient() . For more information, see the Java documentation under http://java.sun.com/j2se/1.4.2/docs/api/java/util/Calendar.html#setLenient(boolean) .

Function Category: Node Functions

Function

Use

createIf

If there are structuring elements in your target structure that do not exist in the source structure, insert them using this function. Using condition I you can control whether the element is inserted or not. You connect the element in the target structure using O .

removeContexts

Removes all higher-level contexts of a source field. In this way, you can delete all hierarchy levels and generate a list.

replaceValue

Replaces the value I with a value that you can define in the dialog for the function properties.

exists

O = true , if the source field assigned to inbound channel I exists in the XML instance. Otherwise, false .

SplitByValue

Inserts a context change for an element.

collapseContexts

Deletes all values from all contexts from the inbound queue except for the first value. Empty contexts (= ResultList.SUPPRESS) are replaced by empty strings. Only one queue remains, which consists of contexts that contain just one value each. Finally, all internal context changes are deleted, so that all values belong to one and the same context.

useOneAsMany

Replicates a value of a field occurring once to pair it as a record with the values of a field occurring more than once.

sort

Sorts all values of the multiply-occurring inbound field I within the existing or set context. The sorting process is stable (the order of elements that are the same is not switched) and it sorts the values in O(n*log(n)) steps. Using the function properties, you can specify whether values are to be sorted numerically or lexicographically (case-sensitive or non case-sensitive) and in ascending or descending order.

sortByKey

Like sort , but with two inbound parameters to sort (key/value) pairs. The sort process can be compared to that of a table with two columns.

      Using the first parameter, you pass key values from the first column, which are used to sort the table. If you have classified the key values as numeric in the function properties, they must not be equal to the constant ResultList.SUPPRESS. See also: The ResultList Object

      Using the second parameter, you pass the values from the second column of the table.

If there is a discrepancy between the number of keys and values, the mapping runtime triggers an exception. The function returns a queue with the values sorted according to the keys.

mapWithDefault

Replaces empty contexts in the inbound queue with a default value, which you specify in the function properties.

Example:
If “Default” is the default value and
A|B1,B2| |C| |D
is the inbound queue,
mapWithDefault returns the following outbound queue:
A | B1,B2 | Default | C | Default |D .

The function corresponds to the following combination of standard functions:

If(
  []field,
  exists([]field),
  Constant([value=default]))

formatByExample

This function has two inbound queues, which must both have the same number of values. To generate the result queue, the function takes the values from the first queue and combines them with the context changes from the second queue.

Function Category: Statistics

The functions of this function category are designed for source fields that occur more than once in the source structure ( maxOccurs = i > 1 ).

Function

Use

sum

R = Sum of values X1 to Xi of a context

average

R = Average of values X1 to Xi of a context

count

R = Number of fields in a context ( i )

index

R = Index i of Xi . In the function properties, you specify the following: the initial value of i , the increment, and whether the index value is to be reinitialized at the beginning of every new context, or whether it is to have the same value for the entire source structure.

Function Category: Text

Note

In position specifications, the 0 position corresponds to the first character in the string.

Function

Use

substring

Returns a substring O for a string I . Use the dialog for the function properties to specify the position of the substring. Example: substring(“Hello”, 0,1) = “H”, means that the substring from Startindex 0 to Endindex 1 (not including position 1) is shown.

concat

R = Linking of strings X and Y (without blanks).

Example: X = “Mrs.”; Y = “Miller”; R = “Mrs.Miller”. Use the dialog for the function properties to insert a separator in the string.

equalsS

R = true , if string X equals string Y , otherwise R = false .

indexOf
(2 input parameters)

R = first position at which string Y is found in X and –1 if Y does not occur at all.

indexOf
(3 input parameters)

R = first position from position Z at which string Y is found in X and –1 if Y does not occur at all.

lastIndexOf
(2 input parameters)

R = last position at which string Y is found in X and –1 if Y does not occur at all.

lastIndexOf
(3 input parameters)

R = last position from position z at which string Y is found in X and –1 if Y does not occur at all.

compare

Compares string X with string Y :

R = 0 , when the strings are equal
R = positive number i , when X is lexicographically larger than Y
R = negative number i , when X is lexicographically smaller than Y

i specifies the difference between the two strings lexicographically.

The function acts in the same way as the compareTo() method of the JDK class java.lang.String .

replaceString

X : String in which something is to be replaced

Y : String to be replaced in X

Z : String to replace Y

R = String in which each occurrence of Y in X is replaced by Z .

Example

X = "sparring with a purple porpoise"

Y = “p”

Z = “t”

R = "starring with a turtle tortoise"

 

length

O = Length of string

endsWith

R = true when Y is the last string in X ; otherwise false .

startsWith
(2 input parameters)

R = true when Y is the first string in X ; otherwise false .

startWith
(3 input parameters)

R = true when Y matches X from position Z ; otherwise false .

toUpperCase

Converts all lower case letters in I to upper case letters.

trim

Removes all white space characters (spaces, tabs, returns) at the start and end of a string. Acts the same as the trim() method of the JDK class java.lang.String .

toLowerCase

Converts all upper case letters in I to lower case letters.

 

分享到:
评论

相关推荐

    PI配置手册-ECC RFC函数发布webservice

    这个过程涉及到一系列步骤,包括创建RFC函数、配置PI、映射消息以及编写Java调用代码。 首先,我们需要在ECC系统中创建并测试RFC函数。例如,这里创建了一个名为ZYNHFIIF002的RFC。在SAP GUI中,可以通过事务码SE37...

    复变\复变函数与积分变换课件\6-4节初等函数共形映射14

    在本节中,我们将重点介绍幂函数和指数函数作为共形映射的例子,并通过具体的例子来探讨这些函数如何将不同的区域映射到其他区域。 ### 1. 幂函数的共形映射 幂函数 \( w = z^n \) 是一种非常重要的共形映射,在复...

    Python中函数图像快速绘制的方法.zip

    如果你想要调整图像的样式,如线条颜色、宽度或样式,可以在`plot`函数中指定。例如,绘制红色虚线: ```python plt.plot(x, y, 'r--') ``` 此外,Matplotlib还支持多个图在同一窗口显示,可以通过`subplots`创建...

    三角函数(VB编写)

    在VB(Visual Basic)编程环境中,我们可以利用图形用户界面(GUI)和内置的数学库来创建函数的图像,包括常见的三角函数:正弦(sin)、余弦(cos)、正切(tan)和余切(cot)。这篇教程将深入探讨如何通过VB实现...

    从 [-pi,pi] 到 [0,2*pi] 的角度映射:该文件包含一个子系统,该子系统执行从 [-pi,pi] 到 [0,2*pi] 的一对一映射。-matlab开发

    1. **基本映射**:展示基本的线性映射函数,通过上述公式直接转换角度。 2. **边界处理**:处理边界情况,如当输入角度等于 -π 或 π 时,确保映射结果准确无误。 3. **异常情况**:可能包含一些异常或非标准输入,...

    matlab开发-interp2pi

    在MATLAB编程环境中,`interp2pi`是一个用于进行角度插值的自定义函数,它在处理涉及到角度计算的问题时非常有用。角度插值是一种在角度数据之间进行平滑插值的技术,通常应用于信号处理、图像处理以及各种工程计算...

    machine-learning.rar_三角函数 拟合_三角函数拟合_三角核函数_函数拟合_过拟合

    其中一种是正则化,它通过添加一个惩罚项到损失函数中,限制模型参数的大小,防止模型过于复杂。此外,选择合适的模型复杂度、采用早期停止策略、集成学习(如随机森林或梯度提升机)或者使用验证集来监控和调整模型...

    SAP PI配置流程-完整版

    本部分将详细介绍SAP PI配置流程中的关键步骤,主要分为三个部分:HTTP适配器类型配置、JDBC作为接收端的适配器类型配置以及JDBC作为发送端的适配器类型配置。 ##### 1. 配置ADAPTER TYPE:HTTP **步骤一:创建...

    用matlab绘制Ackley函数的三维图形

    在MATLAB中绘制Ackley函数的三维图形是一项常见的可视化任务,尤其在优化算法和函数拟合的研究中。Ackley函数是一种常用的测试函数,它具有多个局部极小值和一个全局极小值,常用于评估优化算法的性能。下面将详细...

    matlab常用函数介绍.docx

    以下是一些MATLAB常用函数的详细介绍: 1. **ans**: 当MATLAB执行完一条语句但没有指定输出变量时,结果会自动存储在`ans`变量中。 2. **i, j**: 这是MATLAB中的基本虚数单位,i² = -1,j² = -1。 3. **eps**: ...

    PoMappingDemo

    消息映射是SAP PI/PO中的一种关键功能,用于将输入消息结构转换为输出消息结构,以便适应不同系统间的数据交换需求。在“PoMappingDemo”中,你可能会看到如何创建和配置消息映射,以及如何使用图形化的映射工具来...

    PI JDBC 2010-R3 LINUX

    对于PI系统,这些查询可能涉及到PI的特殊函数,如查询时间序列数据(如`SELECT value FROM &lt;tag&gt; WHERE time = &lt;timestamp&gt;`)。 5. **处理结果集**:执行查询后,可以迭代`ResultSet`对象来获取和处理返回的结果。...

    latex示例之复变函数

    复导数的定义与实变函数中微分的概念类似,但要求函数在局部与线性映射足够接近。解析函数能够展开为幂级数,并且遵循复变函数的许多独特性质,比如全纯性。 4. 曲线积分和复路径 文档中提到的\( \gamma: [a, b] \...

    基于Matlab的PI/4 DQPSK的调制解调源代吗

    映射函数通常会考虑到差分编码,使得连续两个符号之间的相位变化不超过90°,以增强抗干扰能力。 3. **相位调制** 映射后的相位信息会被用于生成载波信号。在Matlab中,可以使用`cos`和`sin`函数生成复数载波,...

    SAP PI Java Mapping com.sap.aii.mapping.api PI MAPPING开发必须jar包

    - 编译和测试:编译Java代码并部署到SAP PI系统,然后在Integration Directory中测试映射逻辑。 - 集成到接口:将Java Mapping集成到XI/PI接口中,作为数据转换的一部分。 5. **最佳实践**: - 尽量保持Java ...

    乘性函数和莫比乌斯反演公式

    **定义1**:一个从自然数集\( \mathbb{N} \)到复数集\( \mathbb{C} \)的映射\( f \)被称为算术函数。若对于任何互质的\( m, n \in \mathbb{N} \),有 \[ f(mn) = f(m)f(n) \] 则称\( f \)为乘性函数。 例如,考虑...

    Bananapi 裸机编程 点亮LED

    在本文中,我们将深入探讨如何使用Bananapi(香蕉派)进行裸机编程,并通过一个实际的案例——点亮板上的绿色LED,来介绍这一过程。Bananapi是一种基于Linux的开源单板计算机,类似于Raspberry Pi,适用于各种嵌入式...

    常用函数图像

    \( y = e^x \) 在所有指数函数中具有特殊的性质,例如其导数也是 \( e^x \)。 - **指数函数(3)**: 探讨指数函数的图像如何随着参数的变化而变化,以及如何利用平移、缩放等变换来改变图像的位置和形状。 **3. ...

    sin函数表,对采用查表法做sin的有点帮助

    本次讨论的核心是“sin函数表”,这在C语言等编程环境中尤其有用,特别是在资源受限或需要快速计算的情况下。 ### sin函数表的意义 在数学中,正弦(sin)是一个基本的三角函数,定义为直角三角形中对边与斜边的...

Global site tag (gtag.js) - Google Analytics