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

  • Using ABAP Function Modules

    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!
    Luis

    Connect 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.
    HM

    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?
      - 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,
    Anu

    Hi 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,
    Tushar

    Hi 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

  • Risk Owners/BPO

    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,
    Miguel

    Thanks 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 Wetzler

    Hi,
    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
    Andreas

    Hi 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 AM

    Hi 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
    Pooja

    Hi 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