Enqueue and Dequeue AUSP

Hi Experts,
I'm using FM 'CLVF_INSERT_AUSP' to insert records into AUSP.
Please let me know how can I Enqueue and Dequeue AUSP before and after insertion.
Is there any standard BAPI instead of 'CLVF_INSERT_AUSP' that by default enqueues and dequeues?
Thanks in advance.
Anirban.

Hi ,
Check for the list of available lock object for this table in data dictonary. If there is some lock object then check for the function module using GOTO->Lock Modules option. It will show the list of function module. U can use these FM to lock the table. First use Enqueue to lock the table. Once u finish the job perform dequeue,otherwise it will create problem.
If lock object is not available then u hav to create lock object for the table and do the above mentioned process.

Similar Messages

  • Lock Object: Enqueue and Dequeue

    Hi
    Im using VB.Net, SAP .Net to do data entry, updates to
    SAP R/3.
    Now, I need to lock the data during user changes on
    particular documents.
    What I done is I created a lock object in SE11. Then
    it produce 2 functions which are the ENQUEUE and
    DEQUEUE.
    Since the data reading from Non-SAP, I check for Allow
    RFC and my lock mode is Exclusive and Cumulative.
    After that, I also created a remote-enabled RFCs to be
    call from VB.Net. These RFCs is calling the ENQUEUE
    and DEQUEUE.
    When I tested in SAP itself, the locking data is
    working perfectly. I checked in SM12, it does shows
    the locking entry.
    But when I try in VB.Net and call the function
    modules, it does not shows any entry in SM12. It is
    like nothing happen at all.
    After that, I do little test. Firstly I lock the data
    from SAP then I run VB.Net, and it does shows the
    message who is currently locking the data.
    Anybody could help me on this?
    Thank you.
    Regards.

    See the following extract from documentation. Check if your lock object definition is satisfying all of them.
    <i>Reference Fields for RFC-Enabled Lock Objects
    The type of an RFC-enabled function module must be completely defined. The parameters of the generated function module therefore have the following reference fields for RFC-enabled lock objects:
    Parameters               Reference fields
    X_<field name>           DDENQ_LIKE-XPARFLAG
    _WAIT                    DDENQ_LIKE-WAITFLAG
    _SCOPE                   DDENQ_LIKE-SCOPE
    _SYNCHRON                DDENQ_LIKE-SYNCHRON
    </i>
    Here is the link to the documentation
    http://help.sap.com/saphelp_46c/helpdata/en/4f/991f82446d11d189700000e8322d00/frameset.htm
    Srinivas

  • Enqueue and Dequeue of BLOB messages

    Hi all,
    Does anyone have any experience with enqueue and dequeue of BLOB messages? I have PDF files that I would like to send via aq. I can enqueue them, but not dequeue them. When I attempt to deque, I get the following error:
    ORA-25236: buffer too small for user data
    Here is my enqueue code:
    set serveroutput on size 1000000
    set timing on
    /* Enqueue to msg_queue: */
    DECLARE
       Enqueue_options     DBMS_AQ.enqueue_options_t;
       Message_properties  DBMS_AQ.message_properties_t;
       Message_handle      RAW(16);
       Message             blob;
         TmpMsg              blob := empty_blob;
         cnt                 number;
    BEGIN
       DBMS_AQ.ENQUEUE(queue_name => 'JOOSTENBERGVLAKTE',
       Enqueue_options            => enqueue_options,
       Message_properties         => message_properties,
       Payload                    => tmpmsg,
       Msgid                      => message_handle);
         select t.user_data into message from test_queue t where t.msgid = message_handle;
         select blob_content into tmpmsg from tbl;
         cnt := length(message) + 1;
         dbms_lob.erase(message, cnt);
         dbms_lob.trim(message, 0);
         dbms_lob.append(message, tmpmsg);
         dbms_output.put_line('Erased ' || cnt || ' characters');
         dbms_output.put_line('Message length ' || length(message));
       COMMIT;
    END;
    /And here is my deque code:
    set serveroutput on 1000000;
    declare
         l_options         dbms_aq.dequeue_options_t;
         l_properties      dbms_aq.message_properties_t;
         l_hnd             RAW(16);
         l_msg             blob := empty_blob;
    begin
         dbms_aq.dequeue(
              queue_name => 'JOOSTENBERGVLAKTE',
              dequeue_options => l_options,
              message_properties => l_properties,
              payload => l_msg,
              msgid => l_hnd
         commit;
    exception
         when others then
              rollback;
              raise;
    end;
    /

    Hi,
    I think you have the order of enqueueing and filling your blob in the wrong order. I understand why you do it, because inserting a blob in the table you could do that in this way. But I think that you should fill and close your blob before enqueueing it.
    Try something like:
    l_attachment blob;-- := :p_attachment;
    begin
    dbms_lob.createtemporary(l_attachment, false);
    dbms_lob.write( lob_loc => l_attachment
    , amount => length(:p_attachment)
    , offset => 1
    , buffer => utl_raw.cast_to_raw(:p_attachment));
    Another small remark is that I see you doing a commit right after the enqueue-dequeue. In your enqueu example it seems to make sense because you try to fill the blob afterwards. But you could also use the enqueue-dequeue option "visibility" and set that on dbms_aq.immediate. Then you don't have to do a commit. This is handy for enqueueing messages with out affecting your transaction.
    Regards,
    Martien

  • Enqueue and dequeue between two databases

    Please help me to solve i was able to eneque and dequeue in the same database but i just want to enqueue in one database and dequeue in another database can some one let me know the process and it may require any listener configuration?

    DECLARE
    dequeue_options dbms_aq.dequeue_options_t;
    message_properties dbms_aq.message_properties_t;
    message_handle RAW(16);
    message aqt_order;
    BEGIN
    dequeue_options.DEQUEUE_MODE := DBMS_AQ.BROWSE;
    DBMS_AQ.DEQUEUE ('aqt_queue', dequeue_options, message_properties, message, message_handle);
    Dbms_output.put_line(message.ord_name);
    END;
    i want to dequeue the above code in my database 'b'. i am able to enqueue and dequeue in my database 'a'.Whenever i am dequeueing this it keep on executing.please suggest

  • High REDO Generation for enqueue and dequeue

    Hi,
    We have found high redo generation while enqueue and dequeue. Which is in-turn affecting our database performance.
    Please find a sample test result below :
    Create the Type:-
    CREATE OR REPLACE
    type src_message_type_new_1 as object(
    no varchar(10),
    title varchar2(30),
    text varchar2(2000))
    Create the Queue and Queue Table:-
    CREATE OR REPLACE procedure create_src_queue
    as
    begin
    DBMS_AQADM.CREATE_QUEUE_TABLE
    (queue_table => 'src_queue_tbl_1',
    queue_payload_type => 'src_message_type_new_1',
         --multiple_consumers => TRUE,
         compatible=>10.1,
         storage_clause=>'TABLESPACE EDW_OBJ_AUTO_9',
    comment => 'General message queue table created on ' ||
    TO_CHAR(SYSDATE,'MON-DD-YYYY HH24:MI:SS'
         commit;
    DBMS_AQADM.CREATE_QUEUE
    (queue_name => 'src_queue_1',
    queue_table => 'src_queue_tbl_1',
    comment => 'Test Queue Number 1'
         commit;
    dbms_aqadm.start_queue
    ('src_queue_1');
         commit;
    end;
    Redo Log Size:-
    select
    n.name, t.value
    from
    v$mystat t join
    v$statname n
    on
    t.statistic# = n.statistic#
    where
    n.name = 'redo size'
    Output:-
    595184
    Enqueue Message into the Queue Table:-
    CREATE OR REPLACE PROCEDURE enque_msg_ab
    as
    queue_options DBMS_AQ.ENQUEUE_OPTIONS_T;
    message_properties DBMS_AQ.MESSAGE_PROPERTIES_T;
    message_id raw(16);
    my_message dev_hub.src_message_type_new_1;
    begin
    my_message:=src_message_type_new_1(
    '1',
    'This is a sample message',
    'This message has been posted on');
    DBMS_AQ.ENQUEUE(
    queue_name=>'dev_hub.src_queue_1',
    enqueue_options=>queue_options,
    message_properties=>message_properties,
    payload=>my_message,
    msgid =>message_id);
    commit;
    end;
    Redo Log Size:-
    select
    n.name, t.value
    from
    v$mystat t join
    v$statname n
    on
    t.statistic# = n.statistic#
    where
    n.name = 'redo size'
    Output:-
    596740
    Can any one tell us the reason for this high redo generation and how can this can be controlled?
    Regards,
    Koushik

    Please find my answers below :
    What full version of Oracle?
    - 10.1.0.5
    How large is the average message?
    - in some byets only, at max 1-2 KB and not more than this.
    What kind of performance problem is 300G of redo causing? How? Have you ran a statspack report? What did it show?
    - Actually we are facing some performance issue as a overall prespective for our daily batch processing, which now causing a delay in the batch SLA. So we have produced an AWR report for our database and from there we have found that total redo generation is around 400 GB, amoung which 300 GB has been generated by enqueue-dequeue process.
    What other activity is taking place on this instance? That is, is all this redo really being generated as the result of the AQ activity or is some of it the result of the messages being processed? How are the messages created?
    - Normal batch process everyday. Batch process also generates REDO but the amount is low compare to enqueue-dequeue process.
    Have you looked at providing a separate physical disk stripe for the online redo logs and for the archive log location from the database data file physical disk and IO channels?
    - No, as we are not the production DBA so we don't have the direct access to production database.
    What kind of file system and disk are you using?
    - I am not sure about it. I will try to confirm it by production DBA. Is there any other way to find it out, whether it is on filesystem or raw device?
    Can you please provide any help in this topic.
    Regards,
    Koushik

  • Function module like ENQUEUE and DEQUEUE for function location.

    Hi All,
    I should be highly appreciate if any one help me for locking function module like ENQUEUE and DEQUEUE
    for function location.
    Thanks
    Shaw

    Hi,
    You can either use the standard way of locking by using :
    data:lv_varkey          TYPE rstable-varkey.
    concatenate functional_location sy-mandt into lv_varkey .
    *   Lock table
        CALL FUNCTION 'ENQUEUE_E_TABLEE'
          EXPORTING
            mode_rstable   = 'E'
            tabname        = 'IFLOS'
            varkey         = lv_varkey
          EXCEPTIONS
            foreign_lock   = 1
            system_failure = 2
            OTHERS         = 3.
    *     Unlock table
          CALL FUNCTION 'DEQUEUE_E_TABLEE'
            EXPORTING
              mode_rstable = 'E'
              tabname      = 'IFLOS'
              varkey       = lv_varkey.
    Or,
    As mentioned above create a lock object via transaction SE11.
    Go to transaction se11:
    --> Enter lock object name e.g EZ_IFLOS
    --> Click on create
    --> Enter description
    --> Click on tables tab
    --> Enter 'IFLOS' as table name
    --> select lock mode
    --. click on save and activate.
    2 function modules will be created as DEQUEUE_EZ_IFLOS and ENQUEUE_EZ_IFLOS .
    Regards.

  • Where to enqueue and dequeue correctly

    Dear all,
    I have an application in which I need to enqueue tables and dequeue when leavin.
    The application consists of one window. In the window I have several views. One main view with a tray to navigate and a ViewContainerUIElement.
    When choosing an entry in the tray, a view called "A" is loaded into the ViewContainerUIElement. I now need to enqueue a table A and populate a message in the loaded view if a lock already exists.
    If the user then chose another entry of the tray, the existing lock on table A needs to be dequeued before view "B" is loaded into the ViewContainerUIElement and table "B" needs to be locked.
    I wanted to implement the enqueue in method WDDOINIT of each corresponding view and the dequeue in the method WDDOEXIT. But WDDOEXIT is not called when I "leave" view A and navigate to view "B" and WDDOINIT of view "B" not called again when navigate to view "B".
    Could somebody please give me a hint how to do this? I somehow dont get it done correctly.
    Thanks in advance,
    Hendrik

    Hello Handrick ,
                              You can create the INBOUND and OUTBOUND plugs for both of view A and B .
    And fire these plugs to navigate between the views  and write the  ENQUEUE and DEQUEUE in side the Inbound plug handler of both the plugs .
    For example :
    View A  :  
       Inbound plug : A_inbound     ( Handler : A_inboundhandler )
       Outbound plug : A_outbound
    View B:
    inbound  plug : B_inbound    ( Handler : B_inboundhandler)
    outbound plug : B_outbound
    create a navigation link between A_outbound to B_inbound and  B_outbound to A_inbound.
    To switch between the view fire the outbound plugs .
    in A_inboundhandler  :  enqueue A records 
    in B_inboundhandler : enqueue B records
    you can dequeue the records while changing the  tab  or  inside the handlers .
    you have to write enqueue  in the WDDOINIT. it is required  for the first time when view is loaded .
    I hope this will help you .
    Regards
    Vivek

  • What ies ENQUEUE and DEQUEUE in BAPI??

    Enqueue and dequeue when using BAPI function modules...APart from that with data dictionary its locking and unlocking tables.How does it work in BAPI???
    regards ,
    LAvanya

    Hi Lavanya,
    Please reward points if this is helpful and close this thread.
    Enqueue and Dequeue using  BAPI can be used to lock an object.
    <b>For example :</b>
    If we need to lock and employee number to be edited only by the person who set the lock, we can use a BAPI.
    Do read the documentation of  '<b>BAPI_EMPLOYEE_ENQUEUE</b>'. It will give you a better idea of how to implement Enqueue for a BAPI.

  • Audit enqueue and dequeue

    Hi,
    Could anyone help me how audit enqueue or dequeue?
    I've tried the follows statement, but it didn't work:
    audit DEQUEUE ANY QUEUE by access;
    audit ENQUEUE ANY QUEUE by access;

    "Audit enqueue and dequeue" only works for 10G at least due to oracle bug.
    TAR 6016771.992

  • Need Enqueue and dequeue BPEL process

    Hi All,
    I am new in BPEL. I need creating asynchronous webservice using AQ Adapter. If any bodies have Enqueue and Dequeue(using Correlation ID) related task please help me.
    Thanks and Regards,
    M.Sathiya

    Hi All,
    Enqueue is working good but dequeue is problem for runtime BPEL console . Dequeue done in queue table but can't receive the date from BPEL console the receive activity waiting for asynchronous callback. if i click Interaction(From BPEL console) that given Dequeue Schema field form then i click Post xml message next step going good. My problem is don't wait asynchronous callback receive the data from dequeue then continue the process. If any bodies knows respective set up change or related sample please help me.
    Regards,
    M.Sathiyaseelan

  • Enqueue and dequeue

    Hello everyone,
        I jusr found a  interesting question, which also confused me a lot. Hope you can help me. Look at the picture(panel and block diagram). when I press the dequeue loop stop button,the number will change to be 50. when I press the enqueue loop stop button ,then press the dequeue one, the number will never change to 50. I really cannot understand. Moreover,on the basis of the second operating sequence, what I can do to jump out the dequeue loop and change the number??
    Solved!
    Go to Solution.
    Attachments:
    新建 Microsoft Visio 绘图.png ‏166 KB

    carrot0322 wrote:
    First,I am now writting a DAQ program. In order to have the data acquisition (the enqueue loop) and the data processing(the dequeue )can be synchronous, I have the enqueue and dequeue the same rate.
    Again, that doesn't make much sense.  Your producer loop should run at whatever it needs to, based on how fast you are aquiring data from the DAQ.  The consumer loop will iterate based on when data is in the queue.  If there isn't data in the queue, then it sleeps until there is data.
    carrot0322 wrote:
    Secondly, I have to stop the enqueue loop because there may be some element wait in enqueue loop. So I wait all the elements dequeue, then stop the dequeue loop .
    That's why I said to put a command of some sort into your queue when the producer loop is done.  When the consumer sees that command, it knows to stop.  This will ensure you have processed all of your data.
    carrot0322 wrote:
    Thirdly, like the number part after the dequence loop, there are still some processing modules which need all the processing result arrays generated in the dequence loop.So here I put a number control to illustrate. You may think that I can put the rest processing modules into the dequeue loop. But these processing modules are time-consuming and memory-consuming,the buffer will overflow.If you have any advises,please contact me.
    Nothing says you can't use yet another loop to do that processing.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Problems with ENQUEUE and DEQUEUE in HR BAPI call

    Hi
    I am trying to change data in HR using the BAPI "BAPI_PERSDATA_CHANGE" through PI 7.1.
    The problem is that when using this BAPI it requires that the employee is locked first ...
    My question is: anyway to control issue ENQUEUE and DEQUEUE through RFC RECEIVER adapter? or am I forced to build a wrapper for the BAPI?
    Cheers

    Hi Bowie,
        I do not find any such option in Receiver RFC adapter ..:(
    Regards,
    Ravi

  • Enqueue and Dequeue before updating Database table

    Hi all,
    We are updating database tables using INSERT, MODIFY and UPDATE statements. Since many people will be running the application at the same time we need to lock the table before updating database table. So we need to use ENQUEUE and DEQUEUE functionality for this purpose.
    Can any plz explain what are the steps we should follow now?
    Thanks in advance.

    Hi,
    Any Database access should carefully handled as multiple applications may be accessing the database at the same time. To read a record from the database you don't need to implement a lock, but to write you need not only locks but also ideally should use the Update Function Modules to comply SAP "All or Nothing" Principle. This will prevent data inconsistency of the database and the data will be proper state. You need to use the COMMIT WORK and ROLLBACK WORK in you code to handle the consistency part of the database.
    The best design approach would be seperate the Database Layer completely from the business layers. This will make your code robust and easy to maintain.
    As, for the Locking Concepts, you will get multiple resources from SDN as how to create Locks and implement the Locking modules in your code. But more than that what matters is why and how to implement the SAP Locking concepts to make your application run better.
    Have a look at the following link
    http://help.sap.com/saphelp_nw70/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm
    Hope this helps.
    Thanks,
    Samantak.

  • Enqueue and Dequeue consept----Please explain urgent

    hi all,
    i want to use sap locking mechanisn (Enqueue and dequeue consept) while updating database table....please explain how to use this while updating a database table.
    Thanks in advance
    Nandha kumar

    Nandha,
    Good document on this concept..
      Activating a lock object in the ABAP Dictionary automatically creates function modules for setting (ENQUEUE_<lock object name>) and releasing (DEQUEUE_<lock object name>) locks.
    The generated function modules are automatically assigned to function groups. You should not change these function modules and their assignment to function groups since the function modules are generated again each time the lock object is activated.
    Never transport the function groups, which contain the automatically generated function modules. The generated function modules of a lock object could reside in a different function group in the target system. Always transport the lock objects. When a lock object is activated in the target system, the function modules are generated again and correctly assigned to function groups.
    Parameters of the Function Modules
    Field Names of the Lock Object
    The keys to be locked must be passed here.
    A further parameter X_<field> that defines the lock behavior when the initial value is passed exists for every lock field <field>. If the initial value is assigned to <field> and X_<field>, then a generic lock is initialized with respect to <field>. If <field> is assigned the initial value and X_<field> is defined as X, the lock is set with exactly the initial value of <field>.
    Parameters for Passing Locks to the Update Program
    A lock is generally removed at the end of the transaction or when the corresponding DEQUEUE function module is called. However, this is not the case if the transaction has called update routines. In this case a parameter must check that the lock has been removed.
    Parameter _SCOPE controls how the lock or lock release is passed to the update program (see The Owner Concept for Locks). You have the following options:
    _SCOPE = 1: Locks and lock releases are not passed to the update program. The lock is removed when the transaction is ended.
    _SCOPE = 2: The lock or lock release is passed to the update program. The update program is responsible for removing the lock. The interactive program with which the lock was requested no longer has an influence on the lock behavior. This is the standard setting for the ENQUEUE function module.
    _SCOPE = 3: The lock or lock release is also passed to the update program. The lock must be removed in both the interactive program and in the update program. This is the standard setting for the DEQUEUE function module.
    Parameters for Lock Mode
    A parameter MODE_<TAB> exists for each base table TAB of the lock object. The lock mode for this base table can be set dynamically with this parameter. Valid values for this parameter are S (shared), E (exclusive) and X (exclusive but not cumulative).
    The lock mode specified when the lock object for the table is created is the default value for this parameter. This default value can however be overridden as required when the function module is called.
    If a lock set with a lock mode is to be removed by calling the DEQUEUE function module, this call must have the same value for the parameter MODE_<TAB>.
    Controlling Lock Transmission
    Parameter _COLLECT controls whether the lock request or lock release should be performed directly or whether it should first be written to the local lock container. This parameter can have the following values:
    Initial value: The lock request or lock release is sent directly to the lock server.
    X : The lock request or lock release is placed in the local lock container. The lock requests and lock releases collected in this lock container can then be sent to the lock server at a later time as a group by calling the function module FLUSH_ENQUEUE.
    Behavior for Lock Conflicts (ENQUEUE only)
    The ENQUEUE function module also has the parameter _WAIT. This parameter determines the lock behavior when there is a lock conflict.
    You have the following options:
    Initial value: If a lock attempt fails because there is a competing lock, the exception FOREIGN_LOCK is triggered.
    X : If a lock attempt fails because there is a competing lock, the lock attempt is repeated after waiting for a certain time. The exception FOREIGN_LOCK is triggered only if a certain time limit has elapsed since the first lock attempt. The waiting time and the time limit are defined by profile parameters.
    Controlling Deletion of the Lock Entry (DEQUEUE only)
    The DEQUEUE function module also has the parameter _SYNCHRON.
    If X is passed, the DEQUEUE function waits until the entry has been removed from the lock table. Otherwise it is deleted asynchronously, that is, if the lock table of the system is read directly after the lock is removed, the entry in the lock table may still exist.
    Exceptions of the ENQUEUE Function Module
    FOREIGN_LOCK: A competing lock already exists. You can find out the name of the user holding the lock by looking at system variable SY-MSGV1.
    SYSTEM_FAILURE: This exception is triggered when the lock server reports that a problem occurred while setting the lock. In this case, the lock could not be set.
    If the exceptions are not processed by the calling program itself, appropriate messages are issued for all exceptions.
    Reference Fields for RFC-Enabled Lock Objects
    The type of an RFC-enabled function module must be completely defined. The parameters of the generated function module therefore have the following reference fields for RFC-enabled lock objects:
    Parameters
    Reference fields
    X_<field name>
    DDENQ_LIKE-XPARFLAG
    _WAIT
    DDENQ_LIKE-WAITFLAG
    _SCOPE
    DDENQ_LIKE-SCOPE
    _SYNCHRON
    DDENQ_LIKE-SYNCHRON
    Pls. reward if useful

  • SAP enqueue and dequeue from WD

    Hi SDN,
    please, can anybody tell me if there is a way to call an Action when user leaves the application?
    Actually, what I have to do is work with ABAP enqueue and dequeue resources, but so far I just could think about calling RFC to do that, but my problem is when to call de "dequeue", once the transaction must be dequeued after user has finished the process, either this has been done through the right way (by clicking some button in the application) or the wrong way (i.e. leaving the page unexpectedly).
    I would appreciate any kind of suggestion!
    Thank you again!
    Regards

    Hi Fabio,
                  Are you still facing the problem? I exactly faced this problem one year back and could resolve it. Do like this.
    1.Create RFC for calling dequeue
    2.Import RFC into your project.
    3.Create a method execUnlock(); call dequeue RFC in this method. Like this:
    try
    wdContext.current<mainRFC>Element().modelObject().modelInstance().disconnectIfAlive();
                   wdContext.current<unlockRFC>Element().modelObject().execute();
    catch (WDDynamicRFCExecuteException e)
    catch (NullPointerException e)
    You can call execUnlock() after user has finished the process or provide a button to exit. In onActoin of that button and wdDoExit() to prevent unnecessary locking problems.
    regards,
    Siva

Maybe you are looking for

  • How can i use my Isight on yahoo messenger ?

    I tried to start my webcam but it is not working and but when i use photobooth it alright, but when i tried using yahoo messenger webcam its not working.. pls could anyone help me..

  • Special gl posting key

    Dear Forum, To post special gl transaction, why the normal posting key cannot be used? i mean the range of debit and credit posting key for vendor and customer. in fbkp, it is set to debit and credit to use what code and i see there is dedicated post

  • How to transfer settings from WRT310N (in use) to AC1750 (EA6500) (new)?

    Is there an easy, automated process to transfer existing router configuration/settings from a (currently in use) WRT310N to a new AC1750 (EA6500) (brand new, not currently in use)? I am hoping not to have to do it manually ... Thanks!

  • Change my shipping address for a repair of my iPod touch?

    The home button on my iPod touch fourth generation was stuck down and unresponsive so I contacted Apple. They sent me a box and all and the next day I took it to a Fed Ex center. The problem is, they sent it to my boyfriend's house because I thought

  • Issue with BAPI BAPI_GOODSMVT_CREATE

    Hello, I am using BAPI_GOODSMVT_CREATE to post goods mvt against PO. When the PO is fully delivered and if i run my program again, it again posts against the same PO How can i avoid this ? Won't the BAPI check this automatically ? Thanks