Idoc trigger for inventory updates.
Hi ,
we want to send our inventory update for a specific storage type to a third party system. when ever the quantity in a particular bins of the storage type gets updated an IDoc should e created to send the remaining quantity to a third party system. the triggers include any goods movements (PGI, goods issues, goods receipts). So my question is where do I write the trigger. Do i have to write the trigger against each transaction that will impact in goods movements or is there any way that I could write it at a higher level so every goods movement thats happening in the SAP system will check whether it has to create an IDOC or not.
what happens if I use MB1A, MB1B, MB1C?
what happens if I dont post material document and just perform bin to bin transfer.
I want the the Inventoy level at a particular bin when ever there is a change to in the quantity.
how can I achieve this??
Edited by: deepu p on Mar 17, 2011 2:18 PM
Similar Messages
-
IDOC Inbound for Inventory Adjustment
Hi There,
I have a process we I have an inbound message to adjust the inventory, I was checking SAP Inbound proposaland I could not find any message type for this funtionality. I would like your help in this matter.
I need to indentified the IDOC and message type for this process.
Thanks in advance
AlexisHi,
For IM, you can use IDoc type WMMBID02 with message type WMMBXY.
Please check test program RLMBXY00 to simulate IDoc WMMBID02.
For MM, you can use IDoc type MBGMCR02 and message type MBGMCR.
Regards,
Ferry Lianto -
Hi guys,
I have created a copy of the AdventureWorks2012 DB called AdventureWorks2012_new on the same instance.
I have created the following trigger below but my friend who is a DBA told me that this is not correct and I should be using the inserted table when creating this trigger. I would like AdventureWorks2012_new DB to be updating/inserting/deleting data from
the same tables that have been updated/inserted/deleted in the AdventureWorks2012 DB. How exactly should I do this for all the tables in the whole database ? What I have written below is just for one of the tables, is there a quicker way to do it for all tables
in this DB so that it performs the actions mentioned above, automatically ? Help would be greatly appreciated so I can understand how this works, thanks
CREATE TRIGGER [HumanResources].[tr_HumanResources_AfterUpdate]
ON [AdventureWorks2012].[HumanResources].[Department]
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
UPDATE AdventureWorks2012_new.HumanResources.Department
SET Name = t2.Name,
GroupName = t2.GroupName,
ModifiedDate = t2.ModifiedDate
FROM AdventureWorks2012.HumanResources.Department AS t2
INNER JOIN AdventureWorks2012_new.HumanResources.Department AS t1
ON t2.DepartmentID = t1.DepartmentID
ENDFor insert it's easy:
CREATE TRIGGER [HumanResources].[tr_HumanResources_AfterInsert]
ON [AdventureWorks2012].[HumanResources].[Department]
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
Insert INTO AdventureWorks2012_new.HumanResources.Department
(DepartmentID, Name, GroupName, ModifiedDate)
SELECT DepartmentID, Name, GroupName, ModifiedDate
FROM Inserted;
END
I didn't verify column names, so you may need to make sure to use correct column names for that table.
Setting replication is a bit advanced topic although BOL is clear and you may start here
http://technet.microsoft.com/en-us/library/ms151198.aspx
If it will be complicated for you, you can ask extra questions in the MSDN Replication forum.
For every expert, there is an equal and opposite expert. - Becker's Law
My blog
My TechNet articles -
Do not fire trigger for specific updates
I have a table that has a timestamp filed and varchar2 field that keeps track of the last update.
I have written a trigger that executes after update for each row and inserts the current user and sysdate into this fields. However most of the updates to this table are done to a single column and when this is the case I do not want the trigger to fire. If the update is done to any other column yes, but to this specific column then no.
Is there a way to implement this?
Thank you for your help.One obvious way is to use the 'FOR UPDATE OF' clause, which allows you to list the columns that are supposed to fire the trigger.
There is, as far as I know, no 'FOR UPDATE OF ALL EXCEPT ...' capability.
More details in the SQL Reference manual. -
Hi All,
I have a situation, SPEmailEventReceiver and WorkFlow is attached to same library, WorkFlow is configured to run after item is updated, but soon as the email is received in library the workflow
is getting triggered, We have a action to create folder with subject and date and put the attachment with the date folder in SPEmailEventReceiver e.g: once a mail is received in library the SPEmailEventReceiver will create a folder with Subject and then Folder
with Date and then put the attachment in the date folder so hierarchy will be subject folder/Date folder/attachment
I have tried to alter the SquenceNumber attribute in Feature Element file to 1 and make the Synchronization as synchronous but no luck.Hi,
Here are some articles for your reference:
Programmatically creating Folders within SharePoint List
http://www.mindfiresolutions.com/Programmatically-creating-Folders-within-SharePoint-List-487.php
How to use SPEmailEventReceiver?
http://kkryczka.wordpress.com/2010/11/05/how-to-use-spemaileventreceiver/
Attachments disappear with custom email event handler
http://blogs.msdn.com/b/malag/archive/2009/05/13/attachments-disappear-with-custom-email-event-handler.aspx?PageIndex=2
Thanks,
Dennis Guo
TechNet Community Support
Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
[email protected]
Dennis Guo
TechNet Community Support -
Problem in INVOIC02 Idoc trigger for Customer
We are trying to issue outbound invoices( Message type INVOIC / basic type INVOIC02) to the customer.
We have configured the output type ZINV in NACE and are using while creating the invoice.
This Customer is configured in the KU partner types thriugh WE20.
But when we try to create the invoice from VF03 and save for the output type then IDOC doesnt get trigerred.
Whats missing ?
Regards.Hi Amber,
Then you click enter button.It is asking to create object with that include name ZXBC425G01U01 in a pop-up.You should select YES option.It will ask package . Give the package name and save.Then include program is created and allowed you to write your own code.
Thanks,
Prasad GVK. -
IDOC trigger for changes in condition records
Hi Guru's,
I want to trigger IDOC every time I create a condition record and every change in condition record. can you suggest me how to trigger IDOC COND_A01 in above scenarios.
Thanks in advance.
SureshOh, price condition.
In Vk13, there is a icon "Condition Information", narrow your results in the selction criteria. In output, there is a 'Send Condition" icon. then enter your message type and logical system. After that, you can use WE02 to view the idocs.
Please revert if answered. -
The error message is "Processing of Change Number xxxxxxxxxxxxxxxx Cancelled" Message Number CC569.
We cannot see more error details in application log.
Please provide some clues on how to avoid this errorHi,
Could you please check the authorization roles of your RFC USER ? If user can't change or create change numbers in your system the error could be issued.
regards
Waman -
I have a table that consists of the following: product_id number, location number, qty number. product_id and location are primary keys.
I want to create a trigger before an update and if the record doesn't exist that is trying to be updated, then I have to create the record.
For example, if I want to do an update of the following:
update inventory set qty = 80 where product_id=13 and location=45;
Let's say that the record doesn't exist, how do I do this with a trigger.Hi,
First of all i would like to clear one thing:
IF you are trying to update any record and that record does not exist in table then trigger will not be called.
"afiedt.buf" 10 lines, 236 characters
1 CREATE OR REPLACE TRIGGER t_trig
2 BEFORE UPDATE ON t
3 FOR EACH ROW
4 BEGIN
5 DBMS_OUTPUT.PUT_LINE('Trigger has been called!!!');
6 EXCEPTION
7 WHEN OTHERS THEN
8 DBMS_OUTPUT.PUT_LINE('IN EXCEPTION:'||SQLERRM);
9* END;
SQL>/
Trigger created.
SQL>DESC t;
Name Null? Type
NAME VARCHAR2(20)
SQL>SELECT * FROM t;
NAME
BBB
1 row selected.
SQL>SET SERVEROUTPUT ON
SQL>
SQL>UPDATE t SET NAME='XXX' WHERE name='AAA';
0 rows updated.
SQL>UPDATE t SET NAME='XXX' WHERE name='BBB';
Trigger has been called!!! <-- Trigger called here
1 row updated.So to achieve your result you have to do it outside the trigger.
If you are updating trougha a procedure, after update statement you can use SQL%ROWCOUNT to get how many rows have been updated. If it zero you can insert the record.
Regards -
IDOC trigger using Z change pointers for standard SAP table
For IDOC trigger, is using custom change pointers on standard SAP master data tables, a good idea? A seasoned abaper told me "it will mess with the standard" and further told to go with scheduled job.
So, for example, say that my data for table T001K is updated via transports in PRD and I need to transfer this updated data via IDOC to an external system. Since there is no standard message type for this data, I will create a new one. Further, I will create a new change pointer for table T001K (it already has six fields with their data elements activated for Change Documents). Then I link the message type and the new change pointer. And so on an so forth. I have followed the procedure given here:SAP Tips: A to Z of Custom Change Pointer
Now, the question is, will this be a good idea to capture data and trigger IDOC? Or a batch program with calls to standard FM to read CDHRD/CDPOS be a more suitable option.
I need to know if a near instantaneous data transfer (and an effecient one as far as the system performance and reliability is concerned) can be acheived. If there is any other way of doing this, I am not aware of it!
Any one has any input/experience on this?Hi Viktor,
I think the batch program approach would be a good solution as the by this way you are taking matter into your own hands rather giving control to the SAP framework because you may have to test out the other approach as to how the standard SAP framework is behaving for custom change pointers.
Thanks,
Ravi -
How to schedule job V3 unserialised Update job for Inventory
Hi gurus,
How to schedule job V3 unserialised Update job for Inventory management
What are the things need to be configured
Thank youHi,
In R/3 go to SBIW > Settings for Application-Specific DataSources (PI) > Logistics > Managing Extract Structures > Logistics Extraction Structures Customizing Cockpit
UIn this Screen you can define delta type, and the jog usign the control job option.
Regards,
Dani -
Mutating Error problem using audit trigger for UPDATE
I need to add 4 columns to all of my tables named:
INSERT_BY
INSERT_DATA
UPDATE_BY
UPDATE_DATE
I intend these to act as "inserted" and "last updated" audit trails within the table, as opposed to creating a new table and storing the audit information there. The insert columns appear to be easy, as I can just use a DEFAULT clause within the definition of the table. However when I attempted to write a (my first) trigger then I run into problems with mutating tables. Presumebly because I am attempting to change the table while the trigger is referencing it.
create or replace trigger test_audit
after update on dictionary
begin
update dictionary
set update_by = user, update_date = sysdate
where entity_id = :old.entity_id;
end;
I thought I could maybe get around this by calling a procedure from inside the trigger. Something like:
create or replace procedure test_audit(vColumn in varchar2, vData in varchar2, vTable in varchar2) is
-- vTable is table name
-- vColumn is PK of table
-- vData is value of PK in current row
begin
update vTable
set update_by = user, update_date = sysdate
where vColumn = vData;
commit;
end test_audit;
However I cannot use variable for table names. Will this mean I have to create a procedure for each table/trigger? Is there a way to reference the table name as a variable and keep this a generic procedure? Or is there an easier way to record the auditing UPDATE information for each changed row within the original table?
Many thanks in advance......Will
this mean I have to create a procedure for each
table/trigger? I think you've answered that question already.
Is there a way to reference the table
name as a variable and keep this a generic procedure?Not that I'm aware of.
Or is there an easier way to record the auditing
UPDATE information for each changed row within the
original table?Well, there's the AUDIT feature.
C. -
How to capture the change in the update mode (for Inventory) in a transport
Hi all,
I recently changed the update mode for Inventory Controlling from Unserialized V3 Update to Queued delta in R/3 DEV environment. When I was doing the change it did not prompt for a transport request. Now I have to somehow capture this in a transport and move it to R/3 Quality environment. How do I capture this change in a transport.
Thanks in advance,
Ram Kumar.there are 2 options
1) try changing back and forth and see if it prompts for a request
2) Create a customizing request and add the following entry into the request
Program ID - R3TR; Object type - TABU; Object name - TMCEXUPD
and make the entry ...How ?? Click on the key that you see under the column 'Function'
client/application component.. if client is 100 and application component is 11
then the table entry should be 10011
Assign points if it helps
P.S:if you check the table TMCEXUPD shows you the update mode
Edited by: KK on May 28, 2008 1:52 PM -
Marker update for Inventory data sources
Hi all,
why we use marker update in Cube manage for inventory data sources at the time of loading?
i heard that to avoid the keyfigures cumulation we do check that option ,is that correct/
please clear my doubt
thxHI
(2LIS_03_BF Goods Movement From Inventory Management-------Unckeck the no marker update tab)
(2LIS_03_BX Stock Initialization for Inventory Management--
---select the no marker update check box)
2LIS_03_UM Revaluations -
Unckeck the no marker update tab)
in the infopackege of "collaps"
Cheers -
After Update Trigger not triggering for first update
Hi All,
I have written a Trigger on AP_SUPPLIERS table to update AP_SUPPLIER_SITES_ALL when payment priority gets updated on AP_SUPPLIERS table. Trigger calls a pragma autonomous procedure after update happens, and updates sites table. We are on R12 (12.1.3) with DB 11.2.0.3.0
Somehow this is not working for the first update, after that for every update it is working. Any idea why this might be happening?
Trigger Code:
CREATE OR REPLACE TRIGGER XX_AP_SUPPLIER_SIT_UPD_SYNC
AFTER UPDATE
ON AP.AP_SUPPLIERS
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
l_vendor_id NUMBER;
l_paym_priority NUMBER;
BEGIN
XX_AP_SUPSITE_UPDATE(:NEW.PAYMENT_PRIORITY, :NEW.VENDOR_ID);
EXCEPTION
WHEN OTHERS THEN
RAISE;
END XX_AP_SUPPLIER_SIT_UPD_SYNC;
Procedure Code:
CREATE OR REPLACE PROCEDURE APPS.XX_AP_SUPSITE_UPDATE (p_payment_priority IN NUMBER,p_vendor_id IN NUMBER) AS
PRAGMA AUTONOMOUS_TRANSACTION;
ex_custom EXCEPTION;
PRAGMA EXCEPTION_INIT( ex_custom, -20001 );
BEGIN
UPDATE AP_SUPPLIER_SITES_ALL
SET PAYMENT_PRIORITY =p_payment_priority
WHERE VENDOR_ID = p_vendor_id;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
raise_application_error( -20001, 'Error while updating payment priority on Site '||SQLERRM );
END XX_AP_SUPSITE_UPDATE;Thanks for your replies Saubhik/VT,
now my trigger is compiled. but is not triggering. pl help me to resolve .....
create or replace
TRIGGER AUDIT_DEV.trg2
AFTER DELETE OR UPDATE OF EMP_STATUS ON AUDIT_DEV.AUDIT_PERSONS
FOR EACH ROW
declare
OSUSER varchar2(30);
MACHINE varchar2(30);
logon_time date;
db_user varchar2(30);
USERNAME VARCHAR2(30);
EMP_USER_MODIFIED AUDIT_PERSONS.EMP_USER_MODIFIED%TYPE;
EMP_DATE_MODIFIED AUDIT_PERSONS.EMP_DATE_MODIFIED%TYPE;
EMP_SK AUDIT_PERSONS.EMP_SK%TYPE;
EMP_ID AUDIT_PERSONS.EMP_ID%TYPE;
EMP_NAME AUDIT_PERSONS.EMP_NAME%TYPE;
EMP_RESIGNATION_DATE AUDIT_PERSONS.EMP_RESIGNATION_DATE%TYPE;
BEGIN
select username,osuser,machine,logon_time into db_user,osuser,machine,logon_time from v$session where sid=(select sid from v$mystat where rownum=1);
INSERT INTO AUDIT_DEV.AUDIT_PERSONS_LOG (EMP_USER_MODIFIED,EMP_DATE_MODIFIED,EMP_SK,EMP_ID,EMP_NAME,EMP_RESIGNATION_DATE,EMP_STATUS_OLD,EMP_STATUS_NEW,osuser,db_user,machine)
VALUES(EMP_USER_MODIFIED,EMP_DATE_MODIFIED,EMP_SK,EMP_ID,EMP_NAME,EMP_RESIGNATION_DATE,:old.EMP_status,:new.EMP_status,osuser,db_user,machine );
COMMIT;
END;
09:59:06 AUDIT_DEV@dev>UPDATE AUDIT_DEV.AUDIT_PERSONS SET EMP_STATUS='TEST' WHERE EMP_ID='4234';
EMP_STATUS
TEST
1 row selected.
Elapsed: 00:00:00.01
10:00:03 AUDIT_DEV@dev>commit;
Commit complete.
Elapsed: 00:00:00.01
10:00:17 AUDIT_DEV@dev>select * from AUDIT_persons_log;
no rows selected
Elapsed: 00:00:00.00
10:00:17 AUDIT_DEV@dev>
Edited by: Abk on Nov 4, 2010 10:42 AM
Maybe you are looking for
-
Oracle R Enterprise installation ERROR: cannot copy dll file
This is bit strange, I posted this message in 2 forums but surprisingly can't find it anymore!! Anyways, I would appreciate if anyone can help me a bit on this issue: I am having trouble installing ORE 1.3 on my windows 7 (home premium, personal note
-
[SOLVED] Problems autostarting xbmc after nvidia upgrade
Hello! With nvidia version 302.17-1 and with 302.17.2 xorg errors and fails when autostarting xbmc.: Here is my Xorg.0.log: https://gist.github.com/3118969 Here is my xorg.conf: https://gist.github.com/3118996 But downgrading nvidia and nvidia-utils
-
Can't see database views (Oracle 11g)
Hi, Latest PowerQuery (PowerQuery_2.10.3598.81 (32-bit) [en-US]) don't show Views and Synonyms when connecting oracle db (11g) Tables shown without problem. What is the problem?
-
I will be migrating a client from Performance Manager to SSM. I understand the capabilities of SSM but have never used Performance Manager. Is these material that compares the two, or even a good description of Performace Manager. Thanks
-
Java Applet that reads from file
I'm quite new to java, I'm fiddling around with it for a nonprofit organization. I have a java program that reads from a specified file and generates output but my final goal is a search box on the website that will take user input, run it through my