Risk Owners approval using ABAP Function class
Dear All
I have implemented ABAP function class ZCL_GRAC_WFA_RISK_OWNER to identify the risk owners once the role approval is done, the Workflow is working fine with one exception.
My scenario is like this - i have mapped P059 risks to PR risk approver coming from PR role, S007 risks is mapped to SD risk approver coming from SD role, so when the role owner have approved both the roles, i would like to send seperate risk approval requests to 2 diff risk approvers as per my mapping.
But currently P059 & S007 risks are routed to both approvers at the same time & when one of them approves the risks - both risks get approved & provisioning is taking place.
i would like 2 risk approval to be put in place - any idea on how to acheive this?
Naveen
Dear Hari
Thanks for your response.. Yes i have implemented the note 1670504..
As mentioned earlier i have checked my Risk approval Stage setting with both options "ALL APPROVERS" & "ANY ONE APPROVER"
but still when one of the risk owner approves all the risks are get approved & the provisioning is completed.
PFA
Do let me know if you have any more options.
Naveen
Similar Messages
-
ABAP Function Modules are available to Crystal Reports through the SAP Integration Kit. The look like tables when listing them in the Database Expert.
How do you use them? Specifically, I am trying to use READ_TEXT to retrieve into a report the contents of STXL.
Thanks!
LuisConnect the following fields in the database expert:
STXL
TDOBJECT
TDNAME
TDID
TDSPRAS
TO FOLLOWING CORRESPONDING FIELDS OF READ_TEXT
I_OBJECT
I_NAME
I_ID
I_LANGUAGE
LATER USE "T_LINES.TDLINE[Text Line]" as output. -
CUP 5.3 (SP11) Risk Owner Approval in CUP workflow
Hello Experts,
I have a question...
When you create a risk in RAR, is there any way you can send an approval request automatically to a Risk Owner already set in RAR?
Unfortunately, there is no such option for risk in the CUP custom approver determinator.
We want to set risk owners different from business process owners,* and risk owners are the ones responsible for risk approval.
*We don't want to set the "business process" as an approver determinator.
I would appreciate your advice.
HMWhen you create a risk in RAR, is there any way you can send an approval request *automatically* to a Risk Owner already set in RAR?
- CUP (Page 19/33)?
Unfortunately, there is no such option for risk in the CUP custom approver determinator.
There is - Request Type - Attribute
Please have a look at the following document to create RISK (RAR) approval workflows in CUP (Page 19/33 - CAD):
http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/e03cd86c-3aa7-2a10-1aa6-e845902f555d?quicklink=index&overridelayout=true
Thanks
Himadama -
Using ABAP function calls in HANA
Hi everyone,
I am very new to the ABAP workspace. Is it possible to call ABAP function modules from the HANA database? We have a long raw field in a table that we would like to convert to text. Any help would be greatly appreciated!
Thanks,
AnuHi Anu,
Please try the following.
Take the transaction iuuc_repl_content for the advanced replication settings.
Select the configuration and then select the table.
You should be able to add ABAP code for a field using this transaction.
Check the OSS note 1733714 for more information.
Thanks
Vinod -
Reject Purchase order using abap OO class CL_PO_HEADER_HANDLE_MM
Hi all,
We have created a webdynpro application for maintaining purchase
order by using class CL_PO_HEADER_HANDLE_MM.
With this class we are able to release (method RELEASESTATE_MM~RELEASE) or cancel release..
We are trying, in vain, to reject purchase order by using method IF_RELEASABLE_MM~REJECT
even if sy-subrc eq 0 .
any idea ?
thanks.Hello
Have you had a look whether you can reject the PO at all using method
IF_RELEASABLE_MM~IS_REJECTION_ALLOWED
Regards
Uwe -
How using ABAP function in fox formula ?
Hello,
I want to launch standard function :"RSW_CURRENCY_TRANSLATION" by Fox formula. I declare this function in SAP Table :rsplf_fdir, and I can call this function by fox, with all parameters.
But when I want to use it, I've a problem with the first parameter : "Formula error: Type RSR_CTTNM is not permitted"
What's the solution ?
Best regards,Hi Cyril,
I read the fact that you have chosen to use CURC instead of the Function Module.
Did you fix your exchange rate type in your CURC formula: For example:
CURC (LCAMT,12312008,EURP,LCUR,GCUR).
Or did you make into a variable, that can be chosen at run time?
I'm asking because I'm trying to make the 'exchange rate type' in this formula to be more dynamic (like a local variable).For example:
DATA EXRATE TYPE 0RTYPE.
DATA EXRATE_V TYPE 0RTYPE.
EXRATE_V = VARV(EXCHRATE).
{0AMOUNT,GCUR, GCTYPE,FYPERIOD,VERSION,COSTELM,INT_ORDER} = CURC (LCAMT,12312008,EXRATE_V,LCUR,GCUR).
But the system returns the error meesage that it doesn't recognise 'EXRATE_V' even though i have declared it earlier on. So I have a fear that the system is expecting me to enter a fixed exchnage rate type that exists in RSCUR, in this formula..!! Is that true??
I don't want it to be fixed in the formula, it should be chosen at time of planning. How do you have yours right now? Do you know why I get this error message, and what I need to do to in the FOX formula, to make sure it can be populated at run time?
Thanks for your help and information in advance. -
Chatting using ABAP Function module
Hi,
Is there some function module or report available in ABAP where we can kind of chat with the other user in same client ?
Regards,
TusharHi Tushar. This is Stallone Christian from Gujarat, India.
I have developed Chat Application in SAP ABAP with Multi User support, Saving History, Auto Refresh, Ping status, Long Text, Etc.
For more detail and screen shots please refer,
http://scn.sap.com/community/abap/blog/2012/06/02/sap-abap-chat-box-v-10-chat-application-in-sap
Stallone Christian
WWW.SAPABAPCODES.COM -
How to use template function/class in pro*c
I wanna do sth like that:
template <class T>
class testClass
private:
int DoDeclare()
{ EXEC SQL BEGIN DECLARE SECTION;
T data;
EXEC SQL END DECLARE SECTION; }
the pro*c complier alawys says error.
How to make it pass?The Implementation Class must reflect the full name of the class. For instance, if the full class name is : xx.yyy.zz.class_name, then put this in the Implementation Class property of the corresponding item.
Also, the class must be stored in the equivalent directory structure, so that, in my example: <DEV_HOME>/forms/java/xx/yyy/zz
Francois -
working for a global client that has an existing process in place for mitigating controls using the SAP usergroup as the location. Each location has a unique Risk Owner/BPO. Is there any way to do this for User Access Review/SOD reviews in GRC 5.3 SP11?
Dear Hari
Thanks for your response.. Yes i have implemented the note 1670504..
As mentioned earlier i have checked my Risk approval Stage setting with both options "ALL APPROVERS" & "ANY ONE APPROVER"
but still when one of the risk owner approves all the risks are get approved & the provisioning is completed.
PFA
Do let me know if you have any more options.
Naveen -
Abap function module http_post and umlaut characters
I am using abap function module HTTP_POST to frame xml and send the data to our middleware system 'CASTIRON'.
Everything works fine but when there are any umlaut characters in xml, the function HTTP_POPST is unable to transmit the data and is creating SM21 updation failures. We are on ECC 6.0 unicode system.
Any help is vey much appreciated.Are you using a CDATA tag to encapsulate your data. Try doing it.
-
Function module equivalent to SWE_EVENT_CREATE while using ABAP classes
Hi there,
I used to use SWE_CREATE_EVENT to fire the events linked to my BOR objects, in order to start certain workflows.
Now I am using ABAP classes within the WorkFlows, and the name of the classes MUST (in my case) be longer than 10 characters, and SWE_EVENT_CREATE is cutting the name so it does not work
Do you know any FM equivalent to start an event from a ABAP class (SE24) object?
I have tried to use SAP_WAPI_START_WORKFLOW, but I cannot find the way to include my object in the container. Any ideas on this point would be welcome as well
Thanks so much,
MiguelThanks for such a quick reply,
You were right. I actually did follow Jocelyn's blogs, but somehow I skipped the raising event section.
Just for information, the URL with the solution to this problem is:
/people/jocelyn.dart/blog/2006/07/27/raising-abap-oo-events-for-workflow
Have a good one -
Integration of BOR functionality into a ABAP-OO Class
Hi together,
we are planning a WebDynpro application in which we are using about ten ABAP-OO classes. The functionality of that classes are using BOR-Objects. Since we are using the M-V-C pattern, we like to create Entities, e.g. "Business Partner" within our model. There is already a BOR "BP" existing. We like to use this BOS-Object for implementing the ABAP-OO Entity Class. By doing it that way, we are sure that the new object will satisfy any SAP compliance.
Is there a standard way to integrate the functionality of BOR-Objects into an ABAP-OO Class?
Best regards
Thomas WetzlerHi,
have a look how SAP is handling this, for example in class CL_ATTACHMENT_LIST.
There is an include CNTN01_SWC with the definitions of the data-types and macros you need to handle the BOR-objects and containers.
Include this in the local class-implementations of your global class. Then you can handle the BOR-objects inside the methods as usual.
Regards
Dirk -
How to indicate a message by a planning function type in an ABAP-OO-Class
Hello,
I integrated a message with following statement " MESSAGE i003(upf1) WITH v1 v2." in an ABAP-OO-Class, which is used by a Planning Function Type. The function type works but it´s not indecated after executing the Planning Sequence, neither from web template nor in the planning modeller.
Does anybody know this problem/behavior?
Thank for response
AndreasHi Joerg,
how about this:
data: l_dummy type char100.
MESSAGE i003(upf1) WITH v1 v2 into l_dummy.
i_r_msg->add_msg( ).
You do not need to take special care about the variables. Just raise the message as you want it to be raised. The only thing you need to do is to raise the message into a string (..into l_dummy). The interface IF_RSPLFA_MSG and the implemetation of add_msg is going to read the standard message variables (SY-MSGNO, SY-MSGID, SY-MSGTY, MSGV1 ...). You just need to throw the message
and call i_r_msg->add_msg( ) e.g. in the execute method of your customer planning function.
Please give it a try and take a look at it in the debugger.
Hope this helps.
Matthias Nutt
SAP Consulting Switzerland -
How to auto refresh planning application -- using ABAP Class?
Hi
I have written few planning functions and attached them in one single planning sequence. One of the planning function in this sequence is de-activate data slice checkmark in planning modeler. If I execute this planning function indiviually then it works great however when I use this function in sequence then second function in row doesnot identify changes made by first function(data slice inactivate) and thus throws errors.
At the same time, if I refresh my planning session and re-execute the planning sequence then it does works as REFRESH activates the changes done by first function (de-activate data slice).
I am wondering if there is any ABAP class that can trigger this auto refresh in background else some other method to do this auto refresh ?
Please let me know if you have any thoughts on this one.
Thanks and happy holidays
Al
Edited by: Al Gon on Dec 21, 2007 3:56 AMHi Al,
The planning fn to deactivate was ineffective in a sequence was because the sequence which executes the functions does it on the data in the buffer and not actually on saved data, while your deactivation would work on the data after its saved.
You could perhaps run that function separately from the others in the sequence and save the data first and then perform your "deactivation" function.
Merry Christmas
Aby -
Fm or class existing for fetching xml contents from a file using abap ?
Hi,
I need to fetch an xml file in a string of type xstring. I am using class cl_gui_frontend_services=>gui_upload.
This returns me content in table format, than i am planning to conver to xstring.
Is there any better approach or any existing function module any one know of ?
thanks
Regards
PoojaHi Pooja,
You can try out this program to read the XML file using abap.
*& Report ZXMLTOITAB *
REPORT ZXMLTOITAB .
TYPE-POOLS: ixml.
TYPES: BEGIN OF t_xml_line,
data(256) TYPE x,
END OF t_xml_line.
DATA: l_ixml TYPE REF TO if_ixml,
l_streamfactory TYPE REF TO if_ixml_stream_factory,
l_parser TYPE REF TO if_ixml_parser,
l_istream TYPE REF TO if_ixml_istream,
l_document TYPE REF TO if_ixml_document,
l_node TYPE REF TO if_ixml_node,
l_xmldata TYPE string.
DATA: l_elem TYPE REF TO if_ixml_element,
l_root_node TYPE REF TO if_ixml_node,
l_next_node TYPE REF TO if_ixml_node,
l_name TYPE string,
l_iterator TYPE REF TO if_ixml_node_iterator.
DATA: l_xml_table TYPE TABLE OF t_xml_line,
l_xml_line TYPE t_xml_line,
l_xml_table_size TYPE i.
DATA: l_filename TYPE string.
PARAMETERS: pa_file TYPE char1024 DEFAULT 'c:\temp\orders_dtd.xml'.
* Validation of XML file: Only DTD included in xml document is supported
PARAMETERS: pa_val TYPE char1 AS CHECKBOX.
START-OF-SELECTION.
* Creating the main iXML factory
l_ixml = cl_ixml=>create( ).
* Creating a stream factory
l_streamfactory = l_ixml->create_stream_factory( ).
PERFORM get_xml_table CHANGING l_xml_table_size l_xml_table.
* wrap the table containing the file into a stream
l_istream = l_streamfactory->create_istream_itable( table =
l_xml_table
size =
l_xml_table_size ).
* Creating a document
l_document = l_ixml->create_document( ).
* Create a Parser
l_parser = l_ixml->create_parser( stream_factory = l_streamfactory
istream = l_istream
document = l_document ).
* Validate a document
IF pa_val EQ 'X'.
l_parser->set_validating( mode = if_ixml_parser=>co_validate ).
ENDIF.
* Parse the stream
IF l_parser->parse( ) NE 0.
IF l_parser->num_errors( ) NE 0.
DATA: parseerror TYPE REF TO if_ixml_parse_error,
str TYPE string,
i TYPE i,
count TYPE i,
index TYPE i.
count = l_parser->num_errors( ).
WRITE: count, ' parse errors have occured:'.
index = 0.
WHILE index < count.
parseerror = l_parser->get_error( index = index ).
i = parseerror->get_line( ).
WRITE: 'line: ', i.
i = parseerror->get_column( ).
WRITE: 'column: ', i.
str = parseerror->get_reason( ).
WRITE: str.
index = index + 1.
ENDWHILE.
ENDIF.
ENDIF.
* Process the document
IF l_parser->is_dom_generating( ) EQ 'X'.
PERFORM process_dom USING l_document.
ENDIF.
*& Form get_xml_table
FORM get_xml_table CHANGING l_xml_table_size TYPE i
l_xml_table TYPE STANDARD TABLE.
* Local variable declaration
DATA: l_len TYPE i,
l_len2 TYPE i,
l_tab TYPE tsfixml,
l_content TYPE string,
l_str1 TYPE string,
c_conv TYPE REF TO cl_abap_conv_in_ce,
l_itab TYPE TABLE OF string.
l_filename = pa_file.
* upload a file from the client's workstation
CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = l_filename
filetype = 'BIN'
IMPORTING
filelength = l_xml_table_size
CHANGING
data_tab = l_xml_table
EXCEPTIONS
OTHERS = 19.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
* Writing the XML document to the screen
CLEAR l_str1.
LOOP AT l_xml_table INTO l_xml_line.
c_conv = cl_abap_conv_in_ce=>create( input = l_xml_line-data
replacement = space ).
c_conv->read( IMPORTING data = l_content len = l_len ).
CONCATENATE l_str1 l_content INTO l_str1.
ENDLOOP.
l_str1 = l_str1+0(l_xml_table_size).
SPLIT l_str1 AT cl_abap_char_utilities=>cr_lf INTO TABLE l_itab.
WRITE: /.
WRITE: /' XML File'.
WRITE: /.
LOOP AT l_itab INTO l_str1.
REPLACE ALL OCCURRENCES OF cl_abap_char_utilities=>horizontal_tab
IN
l_str1 WITH space.
WRITE: / l_str1.
ENDLOOP.
WRITE: /.
ENDFORM. "get_xml_table
*& Form process_dom
FORM process_dom USING document TYPE REF TO if_ixml_document.
DATA: node TYPE REF TO if_ixml_node,
iterator TYPE REF TO if_ixml_node_iterator,
nodemap TYPE REF TO if_ixml_named_node_map,
attr TYPE REF TO if_ixml_node,
name TYPE string,
prefix TYPE string,
value TYPE string,
indent TYPE i,
count TYPE i,
index TYPE i.
node ?= document.
CHECK NOT node IS INITIAL.
ULINE.
WRITE: /.
WRITE: /' DOM-TREE'.
WRITE: /.
IF node IS INITIAL. EXIT. ENDIF.
* create a node iterator
iterator = node->create_iterator( ).
* get current node
node = iterator->get_next( ).
* loop over all nodes
WHILE NOT node IS INITIAL.
indent = node->get_height( ) * 2.
indent = indent + 20.
CASE node->get_type( ).
WHEN if_ixml_node=>co_node_element.
* element node
name = node->get_name( ).
nodemap = node->get_attributes( ).
WRITE: / 'ELEMENT :'.
WRITE: AT indent name COLOR COL_POSITIVE INVERSE.
IF NOT nodemap IS INITIAL.
* attributes
count = nodemap->get_length( ).
DO count TIMES.
index = sy-index - 1.
attr = nodemap->get_item( index ).
name = attr->get_name( ).
prefix = attr->get_namespace_prefix( ).
value = attr->get_value( ).
WRITE: / 'ATTRIBUTE:'.
WRITE: AT indent name COLOR COL_HEADING INVERSE, '=',
value COLOR COL_TOTAL INVERSE.
ENDDO.
ENDIF.
WHEN if_ixml_node=>co_node_text OR
if_ixml_node=>co_node_cdata_section.
* text node
value = node->get_value( ).
WRITE: / 'VALUE :'.
WRITE: AT indent value COLOR COL_GROUP INVERSE.
ENDCASE.
* advance to next node
node = iterator->get_next( ).
ENDWHILE.
ENDFORM. "process_dom
Regards,
Samson Rodrigues.
Maybe you are looking for
-
Pages 4.3 will not open Pages 5.0.1
Documents from my wife's new MacBook Pro with Mavericks and Pages 5.0.1 will not open on my recently purchased iMac with Mountain Lion and Pages 4.3. I really don't want to upgrade my iMac to Mavericks and the newer Pages until some ot the Mavericks
-
I am trying to make a soda can using a label that I have drawn. Whenever I turn the image layer into a 3D soda can shape, the label stretches and is in the wrong position (only part of it is on the can), but I see no settings to adjust scaling and po
-
Disk Blocks, Oracle Blocks, Physical vs. Logical I/O
Hi, I would like to request for some clarification. Sam Alapati states the following in his book "Expert Oracle9i Database Administration:" "The storage disks on which the Oracle blocks reside are themselves divided into disk blocks, which are areas
-
In the previous version of Firefox one could choose to save tabs so that when Firefox opened, all the tabs from the previous sessions appeared. This was done in Settings > Options > General > Startup. In the menu for the "When Firefox Starts" one had
-
MacBook Pro beach ball of death after login
Hello. I have a MacBook pro 13 inch intel core i5that runs os x lion 10.7.1 that is 3 months old. I downloaded a game called prototype in partitions which was 9 Gita bites. After I downloaded it, I tried to concat the partitions with split and concat