cancel
Showing results for 
Search instead for 
Did you mean: 

Workflow Expression Rule Adapter

Former Member
0 Kudos

Hello there,

this is my first time creating process controlled workflow. Now I have a problem to create the right expressions and events to define the output for my for choosing the right schema.

What I want:

We have created a ZBUS2121 and delegated it to BUS2121. Within ZBUS2121 we created new attribute for workflow starting condition.

In Application controlled workflow it works all fine.

But now migrating the workflow to process controlled workflow framework there is the problem.

I need the value of the new Z Attribute from my ZBUS2121 to trigger the right schema.

I Created a new expression Z_C_GET_APPR as OCF001 to call the funktion module /SAPSRM/WF_BFR_0EXP000

my parameters are

1. OC_C1_C_FWFSCRLCNTNT (its the constant class name /SAPSRM/CL_WF_RULE_CONTXT_SC)

2. OC_C2_C_GET_PROPERTY

3. Z_C2_ZGENEHMIGUNGSWF (Thats the name of the attribute in ZBUS2121)

with another expression Z00_SC_E_CHECK from type simple SAP Formularinterpreter (OFB001) I will check the result of Z_C_GET_APPR

I wrote the "Z_C_GET_APPR = 'E'

The result type is boole.

then a third expressions gives me the schema name. It's checks if Z00_SC_E_CHECK is true.

My problem is that the expression Z_C_GET_APPR containing the function module call delivers not the expected result. One field with the value from ZBUS2121.

Whats my mistake?

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Rico,

The below parameters are assigned to expression Z_C_GET_APPR rt?

1. OC_C1_C_FWFSCRLCNTNT (its the constant class name /SAPSRM/CL_WF_RULE_CONTXT_SC)

2. OC_C2_C_GET_PROPERTY

3. Z_C2_ZGENEHMIGUNGSWF (Thats the name of the attribute in ZBUS2121)

then create new constant expression like 'ZSRM_C4_C_ZGENEHMIGUNGSWF' instead of expression for 'Z_C2_ZGENEHMIGUNGSWF' . SAP is using own naming conversion for parameters. C1 - Class, C2 - Method, C4-Attributes. If the parameter 'Z_C2_ZGENEHMIGUNGSWF' is an attribute then create new one with C4. This might be resolved your issue.

Please let me know your feed back..

Saravanan Dharmaraj

Former Member
0 Kudos

Hello Saravanan,

You are right these are the parameters of the expression.

I did'nt know about a naming conversion in brf. Thanks for the hint.

Now I created a new constant expression called Z_C4_ZGENEHMIGUNGSWF but it solved not my problem.

these are my parameters now:

1. OC_C1_C_FWFSCRLCNTNT (its the constant class name /SAPSRM/CL_WF_RULE_CONTXT_SC)

2. OC_C2_C_GET_PROPERTY

3.Z_C4_ZGENEHMIGUNGSWF (Thats the name of the attribute in ZBUS2121)

When I look into other expressions which using the same function module they all have

1. OC_C1_C_FWFSCRLCNTNT (its the constant class name /SAPSRM/CL_WF_RULE_CONTXT_SC)

2. OC_C2_C_GET_PROPERTY

3. OC_C3_C.....

as parameters.

Is /SAPSRM/WF_BRF_0EXP000 the right fm for me? And parameter two the right method?

Maybe it isn't the wrong fm because I'm using ZBUS2121? Or Maybe I have more naming problems. Where can I see the naming conversions of BRF Objects?

How can I trace the workflow and the result of the expression? Currently I will trigger an workflow schema with it and I have to create shopping cards to test my workflow and the expressions. Is there a simple way for finding out the result of the expression?

Former Member
0 Kudos

Hi Rico,

We are using C1, C2 and C4 very frequently. But your case create a custom attribute as 'ZSRM_C3_ZGENEHMIGUNGSWF' which could be resolved your issue. If you face the same issue then the work around is create a custom class , copy of standard class '/SAPSRM/CL_WF_RULE_CONTXT_SCu2019. create a custom method where you can pull the attribute value from your custom BOR. Hope this will help you. If you need more help please reply back.

Saravanan

Former Member
0 Kudos

Hi Saravanan,

thanks for your reply. I found another solution to solve my problem.

For reading the attribute I created an expression of type OSM001 "value request". Within I trigger my own function module, a copy of BRF_DATA_GET_TEMPLATE, to get the value of the attribute.

Before creating the expression I registered the needed structure used in the function module to BRF.

BRF->Utilities u2192 Data Sources

But one question is still open for me. How can I delete expressions, events etc created by me in transaction BRF? The context menü for deleting the item is inactive everytime.

Second question: How can I move my object from one group to another.

Former Member
0 Kudos

Hi Rico,

Nice workaround. if you want to delete your custom BRF objects such as event,expression .. please goto the below t.codes..

for Event..

brfevt01 - Create

brfevt02 - Change

brfevt03 - Display

for Expression

brfexp01

brfexp02

brfexp03

please reply back if you need more information..

Saravanan

Former Member
0 Kudos

thank your for the transaction codes.

Maybe you can help me a third time.

When using the case expression to allocate my scheme name literals with the when values got from the field expression the system find no schema.

The when column I filled with literal which have the same spelling as the ZBOR2121 attribute I'm reading before. The result column is the schema name as literal.

When debugging the process following went wrong:

After the case expression in Method PROCESS_SPECIFIC in Class CL_VALUE_REQUEST_SIMPLE_BRF there is the coding line

134

if lv_error is inital

*----


access the desired field -


Assign lp_structure->* TO <structure>.

but the assigning of the field symbol runs to an error sy-subrc = 4

Then in method if_event_brf~add_message

I get the error message 162 that field symbol is not assigned.

On the other hand the transaction SLG1 shows me warnings that my expressions are not translated.

Do you have any idea what's wrong`?

Former Member
0 Kudos

Thanks for help,

I solved the problem with one function module call expression and realized within my case function.

for more information see this threat

Former Member
0 Kudos

Hi Rico,

I had similar problem when i use CASE expression.. So i have gone with FM expression which will pass the SCHEMA name dynamically. I am not sure why CASE expression does not return the value..

Saravanan..

Former Member
0 Kudos

Hi Saravanan,

my experience of BRF and process controlled workflow is only one week. So I don't understand why case expression delivers no result, too. I guess it's was no triggert in the brf process. It seems so because non of my breakpoints stops in the case class

masa_139
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi,

Please check SLG1 log for BRF. The object is /SAPSRM/.

Regards,

Masa

Answers (0)