Function Module - PM_PARTER_UPDATE Impact ?

All,
I am looking for ways to change/update partners  ship to party and sold to party in equipment ie IE02.
I have find function module PM_PARTNER_UPDATE .
I find PM_PARTNER_UPDATE is using direct update to IHPA in the source code.
My question is can i use this for Equipment master partner update. what will be impact? or any other way.
I try to create  BDC . this will not possible due to during runtime we doesn't know how many lines in the partner screen (table control)
which line needs to be selected for sold to party or ship to party. ie for some equipments sold to party or ship to party comes in different line sequence. due to this selecting the line for sold to party or ship to party for updating the partner is difficult.
Chan

Gautham,
Thanks for your reply.
My primary concern is if we use this fm is its have any impact ? becuase i am worried about direct update inside this fm
Chan

Similar Messages

  • Impact on using function modules that are flagged as obsolete

    Hi Gurus,
    I'm working on a SAP 4.7 instance and we are soon to be going Unicode enabled. I noticed when running transaction UCCHECK that there are a number of function modules such as "POPUP_TO_CONFIRM_WITH_MESSAGE" and "POPUP_TO_DECIDE" as well as others that are flagged as obsolete, I'm not sure why these are not picked up in UCCHECK. However, can someone tell me what the impact would be if these obsolete functions were left as is and not changed?
    Thanks in advance
    C

    Thanks for your responses, I agree with you both.
    my view was that after we go unicode enabled all function modules that are flagged for deletion will still perform as they do now, however, as Praveen says this may not be the case in later versions.
    Thanks
    C

  • Impact of Function Modules when used in upgraded versions

    Hello Experts,
              I wan to know the Impact of Function Modules when used in upgraded versions. How the function module works irrespective of changes done to it in the latest verisons
    Thanks in Advance

    Hi,
    If the function modules is released, it should not have any impact. However if not released, use them with caution as SAP does not support non-released function modules.
    Cheers.
    ...Reward if useful.

  • Function Module RSDRI_DATA_WRAP_V

    BI Experts,
    As part of BI 7.0 SAP has delivered a Function Module 'RSDRI_DATA_WRAP_V' which is basically called by the Function Module 'RSDRI_INFOPROV_READ_RFC'. In our particular case we are exposing FM ' RSDRI_INFOPROV_READ_RFC' as a web service. Using this method we are extracting data in the form of a single array, Which mean to say that if we request for 20,000 rows and 4 fields from a info provider (DSO/Cube) the length of the array would be 20,000 X 4 = 80,000
    In the function module 'RSDRI_DATA_WRAP_V' there is a limit hard coded (Line 57) to 100,000. This is way to low for our application needs. We checked if there are any enhancement points in this FM so that if we change it, we are still within the enhancement  framework. Unfortunately that is not possible.
    We need to know from  why is there a limit of only 100,000 in this function module. However as a feedback, we changed this value to 4,000,000 in our Sandbox and and we did not see any performance impact.
    Has anyone encountered this yet. Any feedback will be very helpful. Thanks Community!
    Regards
    Yashu Raj

    Hi Yashu,
    There is a default SAP guideline that stipulates data packets should be no more than 100,000 lines.
    This should coincide with the internal table space memory that Basis sets. There is a rough calculation that SAP has published to work out the best data packet size optimized for loading.
    I would recommend that you play around with your data packet sizes, I would not recommend increasing the max lines as this will cause other issues. Your Basis contact should be able to provide more insight as to why this is. Below I have done a small outline of how this is done.
    You need to know the structure width (ABAP length) you can get this via SE11, view DataSource as a data type, not a data base table. Then under extras look at the Structure width/ABAP length.
    In our case say the width is 250
    Max lines at highest its setting is 100,000 lines (SAP recommended) this setting can be changed via the Scheduler menu DataS. Default Data Transfer max is 20,000 lines unless you maintain table ROOSPRMS
    Then you need an idea of the number of records to be transferred say 10,000,000
    The calculation of “Number of records per Data Packet” would be
    (Max Lines/Structure Width x 1,000)
    The calculation of “Total Number of Data Packets” would be
    (Number of Records/Number of records per Data Packet)
    So in my example the calc would be
    (100,000/250) x 1,000 = 400,000 records per data packet
    And the number of packets would be
    (10,000,000/400,000) = 25 data packets
    So in summary decrease your packet size and as a result the number of packets will increase but your information will pass through the function module
    Have a look at these links as well
    http://help.sap.com/saphelp_sem40bw/helpdata/EN/b8/5b723b9b4f8f7de10000000a114084/frameset.htm
    http://help.sap.com/saphelp_sem40bw/helpdata/EN/17/e0603801be792de10000009b38f842/content.htm
    Hope this helps, Good Luck
    Ben
    Please assign points if useful

  • Function module / name spaces

    Hello all,
    I was asked to create a function module with the prefix "ZIST_" in its name. Unfortunately this name is part of the SAP namespace, as the system tells me during FM creation (it would be ok to use "Z_IST_" though). Technically it is possible to ignore the error/warning message and create the "ZIST_" function anyway.
    My question now is: can this issue have any bad impact, for example during a release upgrade? If not, if it's ok to use "ZIST_" as prefix, why does the SAP system then popup this warning at all?
    Thanks in adavance for your help!
    Kind regards, Matthias

    Theoretically, SAP could introduce function modules starting with ZIST_ in the future.
    I'd say the probability is only slightly larger than zero though, and even smaller for an entire duplicate function name collision by any chance. Your server might rather get struck by lightning. And even if it happens, then you are forced to change your names, should not be the end of the world.
    But it remains your risk
    Thomas

  • Inconsistent Errors when processing  IDocs using custom Function Module

    I am encountering a most perplexing error. Here is the situation.
    We have a custom function module to update data in the EH&S system. We are having a bizarre error occurring. This is the basic processing of the function module:
    1. IDoc data is read and loaded into an internal table.
    2. Data is run through a series of checks to determine if the data is valid for entry into the system.
    3. After validation we use function module  C1F2_SUBSTANCES_READ_WITH_REF to read  characteristic data for the  substance. This data is used to validate whether current data exists to allow for loading of the IDoc data. (This is the step where the IDoc is receiving an error even if the data is valid. This only occurs if we are processing a large amount of Idocs and one IDoc contains valid data and another invalid data for the same substance. It occurs even if the Idocs are not processed in sequence.  If individually processed or reprocessed after initial failure they pass. This is what is so confusing!) If it exists, a flag is set and  the data is loaded using function module BAPI_BUS1077_CHANGE to modify the data.
    4. If the flag is set to allow further processing, the function module C1F2_SUBSTANCES_READ_WITH_REF is used again to select different characteristic data for the substance. A similar validation process occurs and if it passes, data is loaded using BAPI_BUS1077_CHANGE to update and BAPI_BUS1077_CREATE to create new data.
    Here is the situation:
    When processing one valid record for one substance, the record loads successfully.  When processing multiple valid records (all are valid) for one substance, they all load successfully.  The problem occurs when attempting to load valid and invalid records for the same substance.  Some times the program successfully loads the valid data (as expected).  Other times, it will not load any records.  It is not consistent!
    The order of IDoc processing does not have an impact on the success of the load.  Whether the valid or invalid record processes first does not have an impact on the success of the valid substance load.
    Does anyone have ANY Idea of what is going on? I am clearing all fields in the function module before processing occurs. I cannot find what is causing the error to occur.
    HELP!
    Jim Hardy

    I have some further information. It seems that if data for a substance is sent in two separate Idocs, one with valid and one with invalid data, As long as the two IDocs are processed consecutively, they process correctly. If they are separated by IDocs containing other substance information, they fail.
    thanks
    Jim

  • RFC function module exporting

    Hi..
    when I am trying to export some paramters and tables in RFC function module, i m getting error as well as a warning message stating performance will reduce.
    So please help me to solve the issue.
    Thanks
    Vimalraj

    You are getting this message because you are exporting tables 'by value'. Since this will cause the complete data in that internal table to be copied into a new memory area this might impact the performance of that function in case the table has a lot of data in it.
    However - for an RFC you can only define parameters to be called by value, hence this is not an error in your case. It just lets you know that the performance will suffer when you have lots of data in your internal table compared to a function that would pass the data by reference - but you don't have that option for an RFC anyway.
    Hope that helps,
    Michael

  • Better way of Sending E-Mail Notifications -- Workflow or Function Module ?

    Hi All,
    I have an implicit enhancement written in a t-code and based on some conditions I am creating event which inturn will trigger the workflow which inturn send e-mail notification via send mail step.
    My question is:
    Which one of the ways is better in terms of performance or overhead to send an e-mail notification. (There are no Approval processes in the workflow.. Just One Step E-mail Notification).
    1) In the Implicit Enhancement, Trigger an event which inturn will trigger the workflow and e-mail is sent via send mail step.
    2) In the Implicit Enhancement, Send the e-mail notification via standard function modules available... such as
       "SO_OBJECT_SEND", "SO_DOCUMENT_SEND_API1".........
    Would be grateful if someone can post the Advantages and Disadvantages in the above 2 ways of sending e-mail notifications..
    Regards,
    PR.

    Just to throw in some additional factors, consider exception handling:
    An event-based send mail step is decoupled and thus independent of your application. This means your exception handling is separate. It means you do not need to hold up the transaction if there is a failure. All this depends on how important the mail is. You could of course add validation code to ensure the mail address is valid and send it elsewhere if not.
    Regarding performance, consider how often this happens. If it's an infrequent occurrence then I wouldn't worry about performance. Hundreds or thousands a day is a different story.
    So the answer is:
    Workflow for low-volume scenarios (low performance impact) that are important (better error handling in WF),
    Direct mail for high volume and noncritical
    In between these, use whatever you like
    One more thing to perhaps consider the future. What are the chances of the mail being replaced by a work item in furture? Sometimes it's only by observing a process after go live that you can identify the best solution. e.g. you may decide to replace the mail with a "Please go fix this" work item because you need deadline monitoring

  • Function module output

    Hi
      I am displaying output in function module using 8 tables. But here i am writing code using for all entries.
      But the problem is  what are the fields specify in the select query those fields are displaying in the output. But i want only particular fields.
      Here is there any possibility to write WRITE statement?

    I think you may need to re-state the question a bit as it is not clear -
    I am displaying output in function module using 8 tables.  -> Are you displaying the data onto a screen or a list or just returning the results in the FM parameters?
    But here i am writing code using for all entries.  -> Why does this have an impact on the problem?
    But the problem is what are the fields specify in the select query those fields are displaying in the output. But i want only particular fields.  The fields you include in your select do not have to appear in any output e.g. you could select all and display one
    select * from t001.
      write: / t001-bukrs. "output one field from many...
    endselect.
    Here is there any possibility to write WRITE statement? You can have "write" statements in a function module but you need a screen "canvas" to display them on, so how / whether you see them will depend on where the code is invoked from and what's in the code.
    Jonathan

  • Function Module where-used list does not find update rule programs

    We have function modules called in update rules. The where-used list in the function builder does not find the update rule programs.
    For example, function DATE_GET_WEEK is called in an update rule to InfoCube YCUBE001. The activated program name for this update rule is GP3PWI6PKM5Y3K75A370DIS8I77. When I goto SE37, enter the function DATE_GET_WEEK, click the where-used button, check the programs option and search. The system does not find the program GP3PWI6PKM5Y3K75A370DIS8I77.
    Without this search capability it is difficult to do an impact analysis of changing function modules. Does anyone know of a solution?

    hi,
    i think the reason is the code of update rules' generated program are stored line by line in table(rsaabap), update rules program itself stored in table rsupdrout, link with field codeid, another useful table is rsupdinfo which store infocube, infosource related.  other info may stored in some other rs* and rsa* tables.
    try to create following program in your system, and run, type in the function module name, and will display out the update rules program id, with additional useful info : which infoprovider, infosource, and detail info of the routine and infoobject in the update rule that using that function module. you may modify the program to have better display out list.
    hope this helps.
    REPORT  Z_FM_UPDRUL_WHEREUSED.
    data : lv_sfm,
           lv_line type string,
           lv_where type string.
    tables : rsaabap,RSUPDROUT,rsupdinfo.
    select-options:
    s_fm for rsaabap-LINE.
    start-of-selection.
      loop at s_fm.
        concatenate s_fm-low ' ' into lv_sfm.
        concatenate '%' s_fm-low into lv_line.
        concatenate lv_line '%' into lv_line.
        write : / 'function module', 'update rule id', 'routine id', 'infoobject', 'infocube', 'infosource'.
        select * from rsaabap
        where line like lv_line and objvers = 'A'.
           select * from rsupdrout
           where codeid = rsaabap-codeid and objvers = 'A'.
             select single * from rsupdinfo
             where updid = rsupdrout-updid and objvers = 'A'.
               write: / lv_sfm, rsupdrout-updid, rsaabap-codeid,
                        rsupdrout-iciobjnm, rsupdinfo-infocube,
                        rsupdinfo-isource.
        endselect.
        endselect.
      endloop.

  • Function Module performance in Crystal Reports - Best practices

    Hi all,
    We are following a function module based approach for our crystal reporting needs. We tried to follow an infoset approach, but found that most of the critical fields required for reports were retrieved from function modules and bapis.
    Our reports contain some project filters/parameter fields based on which the task reports would be created. I was wondering what would be the best approach/best practices to be considered while designing the FM so as not to impact the crystal report performance? 
    We created a sample FM in our test system with just the table descriptions ( without the input parameters) which would retrieve all the projects and found that crystal reports crashed while trying to retrieve all the records. I am not sure if this is the right approach since this is our project in using FMs for crystal reports.
    Thank you
    Vinnie

    yes. We did try following the infoset approach against the tables however since our project reports contain long text fields and status texts ( retrieved via FMs), we opted for the FM approach. Do you know how texts can be handles from ABAP to Crystal reports?

  • Error in ERM: Function module does not exist

    Hi all,
    Lately, we are experiencing a frequent error in ERM (5.3 SP 15.0) that we had not had before. We are unsure what caused the error. The message displayed to the user is "Unhandled error". The log error message is "Message Code is 651 Messsage Details Function module  does not exist Message Type is E" (see full logs below).
    The error occurs for example, when users are trying to generate derived roles after saving the org values for the derived role during the methodology process, or when administrators are trying to update the impacted derived roles after for org value mappings.
    Has anyone experienced this or someting similar before? Any ideas what could be the reason here?
    Thanks!
    Patrick
    Edited by: Patrick Weyers on Sep 15, 2011 9:36 AM

    Log extract:
    2011-09-15 09:05:15,103 [SAPEngine_Application_Thread[impl:3]_18] ERROR Message Code is 651 Messsage Details Function module  does not exist Message Type is E
    java.lang.Throwable: Message Code is 651 Messsage Details Function module  does not exist Message Type is E
         at com.virsa.re.service.sap.dao.ManageAuthDataDAO.getAuthorizationData(ManageAuthDataDAO.java:1064)
         at com.virsa.re.bo.impl.AuthorizationDataBO.getNewTransactionObjects(AuthorizationDataBO.java:821)
         at com.virsa.re.role.actions.AuthAuthorizationDataAction.addObjsForNewTxns(AuthAuthorizationDataAction.java:3527)
         at com.virsa.re.role.actions.AuthAuthorizationDataAction.reloadTransactions(AuthAuthorizationDataAction.java:4128)
         at com.virsa.re.role.actions.AuthAuthorizationDataAction.execute(AuthAuthorizationDataAction.java:157)
         at com.virsa.framework.NavigationEngine.execute(NavigationEngine.java:273)
         at com.virsa.framework.servlet.VFrameworkServlet.service(VFrameworkServlet.java:230)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.runtime.RequestDispatcherImpl.doWork(RequestDispatcherImpl.java:321)
         at com.sap.engine.services.servlets_jsp.server.runtime.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:377)
         at com.virsa.framework.servlet.VFrameworkServlet.service(VFrameworkServlet.java:286)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.runServlet(FilterChainImpl.java:117)
         at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:62)
         at com.virsa.comp.history.filter.HistoryFilter.doFilter(HistoryFilter.java:43)
         at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:58)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:384)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:386)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:364)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:1039)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:265)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(AccessController.java:219)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:104)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:176)
    2011-09-15 09:05:15,105 [SAPEngine_Application_Thread[impl:3]_18] ERROR com.virsa.re.role.actions.AuthAuthorizationDataAction
    java.lang.Throwable: java.lang.NullPointerException
         at com.virsa.re.service.sap.dao.ManageAuthDataDAO.getAuthorizationData(ManageAuthDataDAO.java:1084)
         at com.virsa.re.bo.impl.AuthorizationDataBO.getNewTransactionObjects(AuthorizationDataBO.java:821)
         at com.virsa.re.role.actions.AuthAuthorizationDataAction.addObjsForNewTxns(AuthAuthorizationDataAction.java:3527)
         at com.virsa.re.role.actions.AuthAuthorizationDataAction.reloadTransactions(AuthAuthorizationDataAction.java:4128)
         at com.virsa.re.role.actions.AuthAuthorizationDataAction.execute(AuthAuthorizationDataAction.java:157)
         at com.virsa.framework.NavigationEngine.execute(NavigationEngine.java:273)
         at com.virsa.framework.servlet.VFrameworkServlet.service(VFrameworkServlet.java:230)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.runtime.RequestDispatcherImpl.doWork(RequestDispatcherImpl.java:321)
         at com.sap.engine.services.servlets_jsp.server.runtime.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:377)
         at com.virsa.framework.servlet.VFrameworkServlet.service(VFrameworkServlet.java:286)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.runServlet(FilterChainImpl.java:117)
         at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:62)
         at com.virsa.comp.history.filter.HistoryFilter.doFilter(HistoryFilter.java:43)
         at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:58)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:384)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:386)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:364)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:1039)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:265)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(AccessController.java:219)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:104)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:176)

  • Function Module MASTER_IDOC_DISTRIBUTE to be called in background task?

    Hi,
    We are generating outbound Idocs in a report. In this report we are using Function Module Master_Idoc_Distribute. Now we have faced some performance issues and the basis consultant is asking us to:
    Call the function module using CALL FUNCTION Master_Idoc_Distribute IN BACKGROUND TASK.
    1) How will calling the FM Master_IDOC_Distribute in background task help improve the performance?
    2) By calling the function module in background task, will it have any impact on the sequencing of the idocs? If yes what is the way out, as the idoc sequence is very important.
    Thanks in advance,
    Mick

    1) How will calling the FM Master_IDOC_Distribute in background task help improve the performance?
    ->Calling the FM in background task will help in performance as it will be called in the background process mode like a tRFC.So it will not occupy any dialog process which are limited.
    2) By calling the function module in background task, will it have any impact on the sequencing of the idocs? If yes what is the way out, as the idoc sequence is very important.
    ->It will not have any impact on IDoc sequence.

  • Where-Used List: Modifying SAP standard function module

    Hi,
    We have decided to modify SAP standard function module SD_SCHEDULING. But before that, we need to understand what impact this modification will have in the system. We will also estimate the risks with this modification.
    Therefore, I have taken Where-Used List for this function module. We are aware that this list is not comprehensive.
    Do you know any other way we could use to understand better what impacts this kind of modification may have? My colleagues say that this is the only way.
    Thanks in advance for your help.
    Regards,
    Jarmo Tuominen

    Hi Jarmo,
    Try this
    1). Goto Se16 and check the contents of table 'CROSS'.
    2). Enter 'F' in the first selection screen field
    3). In the NAME field enter the Function module SD_SCHEDULING and execute.
    4). The list will give you where all the FM has been used.
    Kindly note this is almost the same as doing a where used list. The where used list will only work correctly if the 'Update Navigation Index' works correctly in your system. So just to ensure the result of your where used list you can follow the above steps. This does not require the Update Navigation Index.
    Hope this helps
    Cheers
    VJ

  • APD vs Read from a cube using Function module

    Hi,
    Please could someone tell me which is the best practice for the below case:
    I want to sent information for one cube to another and in the transformation read from a third cube.  I think I have this two options:
    -     Option1: In the transformation use the function module to read from a third cube and take the information that I need.
    -     Option2: Use APD and send the information of the third cube to a DSO, and in the transformation read from the DSO, instead from the third cube.
    Thanks in advance for your collaboration.
    Judith.

    Hi,
    If I compare option 1 and option 2 then there are many complexities involved in option 2. First of all you will have to create an extra DSO just for look up purpose and this will occupy extra DB space.
    You will always have to do the data transfer from cube to DSO and you need to make sure that DSO data is perfectly matching with Cube so as to populate correct values during lookup.
    But in case of option1 you are simply reading data from original cube using FM so you don't need to worry about data quality for lookup. The only thing here you will have to check is how much time it takes to read data from cube. As you will be writing extraction code in Start routine and use internal table in field routine.
    I hope this will not impact much on your performance.
    Regards,
    Durgesh.

Maybe you are looking for