BLAORD03 and BLAORD02
We are trying to receive the above idocs in a file and use SAP IDOC processing to create Contracts.
Is there a sequence in which these IDOCs should be sent or does it not matter in which sequence the IDOcs are sent. If it does not matter then how does does SAP determine which Condition Record belongs to which Contract? Please not that EDI or ALE is not used to send and receive these IDOCS.
Has anyone tried this method of IDOC processing, using a flat file to receive the data and use IDOC processing to create the Contract?
Thanks in advance for any information regarding this.
Use trasnaction WE60 to get information of all fields in IDOC type. Is that what you are looking for?
Similar Messages
-
IDOC BLAORD03 and COND_A01
Hi Guys,
I have to create a inbound/outbound scenario for contract creation through BLAORD03.
i have to update multiple conditions as well to this contract , for this IDOC COND_A01 might help, but i am not getting how to use this IDOC , as Purchasing document field is mandatory field in this IDOC, and how can i get the purchasing document no in this case.
any help will be appritiated.
regards
siddharthHi,
use the message type COND_A and the process code COND in the partner profile. You have a std FM "IDOC_INPUT_COND_A" linked to this process code which posts the documents and the purchasing document number will be sent by the other system.
Thanks & regards -
Passing custom field in contract in SRM to contract in ECC
Hi,
We are using SRM 7.0 with ECC 6 (no EHP). We're planning to use central contract distributed with IDOCs. Our contract in ECC has custom field added in the header. We have tried and successfully pass the contract from SRM to ECC (using IDOC BLAORD03 and COND_A).
I know we can create custom field in contract in SRM, but how to pass the value in the custom field in SRM contract to custom field in ECC contract? Do we need to edit IDOC BLAORD03? Is it possible?
Best regards,
YoseaHi,
Does anyone know the answer?
John -
Condition Idoc COND_A02
Hi,
I am using BLAORD03 and COND_A02 IDOC to upload (INBOUND) the contract data as well condition data through custom program. But after posting both IDOC, the price given in condition record is not reflecting to the net price of line item screen of contract, while when I am changing the Condition price manually in transaction ME32K it is getting reflect to net price (NETPR) of line item of contract.
The condition is in validity period.
Could you please suggest the answer .........Urgent?OK, sorry - I thought the process is the other way around.
I have the feeling, the condition creation isn't correct. To check the correct filling of the IDOC, do the following steps:
- define an outbound cond_a02 message
- search a correct contract condition, display this in MEK3 (or VK13?). Take the condition info button right on the entry screen, select your example in the following screen, execute
- mark and send one (or more) line(s) with the text-button 'send conditions' (SHIFT+F'2)
- now you (should) have an IDOC with the correct field filling - compare this (in WE19) with your inbound IDOCs.
- you can also take the outbound IDOC and use this in WE19 for a new condition creation (exchange the contract or the material) - this should work for sure (otherwise SAP would not be able to receive it's own IDOCs in a remote system)
Some fields of the outbound IDOC are not necessary for condition creation - they would be filled automatically (e.g. based on customizing). Still adjust your condition IDOC as long as the condition is not created correct in the system. -
Hi ,
I am using BLAORD03 and COND_A02 IDOC to upload (INBOUND) the contract data as well condtion data through custom program. But after posting both IDOC , The price given in conditon record is not reflecting to the net price of line item screen of contarct.The condition is in validity period. could you please suggest the answer?OK, sorry - I thought the process is the other way around.
I have the feeling, the condition creation isn't correct. To check the correct filling of the IDOC, do the following steps:
- define an outbound cond_a02 message
- search a correct contract condition, display this in MEK3 (or VK13?). Take the condition info button right on the entry screen, select your example in the following screen, execute
- mark and send one (or more) line(s) with the text-button 'send conditions' (SHIFT+F'2)
- now you (should) have an IDOC with the correct field filling - compare this (in WE19) with your inbound IDOCs.
- you can also take the outbound IDOC and use this in WE19 for a new condition creation (exchange the contract or the material) - this should work for sure (otherwise SAP would not be able to receive it's own IDOCs in a remote system)
Some fields of the outbound IDOC are not necessary for condition creation - they would be filled automatically (e.g. based on customizing). Still adjust your condition IDOC as long as the condition is not created correct in the system. -
Send R/3 contracts to MDM Catalog
Hi experts
I am in SRM 5.0 and I would likw to know if iis there a standard process to transfer R/3 contracts to MDM catalog or it's necessary to make a development?
Thanks
NilsonHi,
You can use standard IDOC BLAORD03 and use transaction ME308 that send the specified contract to an IDOC structure. Then create in PI\XI the XML you want to transfer to MDM and use the mdm import server.Good Luck
Limor -
Idoc for materials and service for same contract.
Dear All
I have an scope where i have to migrate the data for material and services for the same contract.Is there an Idoc which does it so or otherwise ?Earlier in scope materials contracts have been loaded with the help of idoc type :- PURCONTRACT_CREATE01 and that of Service Contract using Idoc type :- BLAORD03.No customization is however permitted .Tcode for the same is ME32K.
Regards
SomnathHi,
It is not clear to me if you are working with sapscript or smartforms.
You have only to find a variable which identifies the kind of invoice
I do not know that variable so i use an example variable
for sapscript:
/: IF &VBDKR-FKTYP& = '1'
/ INVOICE
/: ELSE
/ SERVICE ORDER
/: ENDIF.
In a smartform you can also do something like that.
but There you work with conditions (eq, BOOLEAN)
You have only to find the right variable
success,
Gr., Frank -
IDOC (BLAORD03) could not be saved..
Hello all,
When we create GOA in SRM and after approval.. it is not getting distributed to ECC..
When we debug, RFC Call, in ECC there is no IDOC Generated against to this Contract Number.. And the call in failing with the following discription
IDOC (BLAORD03) could not be saved
Application error in backend system D01CLNT200 (SRM outline agreement 6100000043)
We Implimented BADI's for Condition (Mapping) in SRM and Company code updation (in ECC)..
- IDOC it self is not getting generated in ECC, Partner profile is maintained for message - BLAORD
Pls suggest..!!
Thanks in Advance.!!
Regards,
Mohan VamsiHello Sanjeev,
Yes, we maintained partner profiles for both the message types, and, Profile in ECC is SAP_ALL.
Any other places which I need to check.. Pls suggest. Very much thankful for your help.
Also..
Now I hard coded our ECC Sytem LS name in BADI Implimentation of BBP_DETERMINE_LOGSYS as per the documentation.!!
Follow-on contract from Bid Invitation
Regards,
Mohan Vamsi.. -
Issues during Contract creation using Inbound IDOC BLAORD03
Dear Experts,
We need to create Contract using Inbound IDOC BLAORD03.
I am facing following issues and need some one's help ASAP.
(1) Contract is generated without Header Texts and Item Texts through IDOC BLAORD03 .
(2) Not able to create CONTRACT for service masters using Inbound IDOC BLAORD03.
Is there any body who has implemented this scenario and able to guide ?
Looking forward to help ASAP.
Thanks in Advance,
Best Regards,
Mitesh Desai
[email protected]Hi All,
I am also facing the same issue. I am trying to upload service outline agreements thru LSMW using idoc basiv type BLAORD03 ( FM->IDOC_INPUT_BLAORD).
Immediate help highly appreciated.
Thanks & Regards,
Vijender -
Hello,
I'm trying to use idoc BLAORD03 to create lsmw for purchasing contracts (services).
I'd appreciate if someone could guide me on the structures to select and how the mapping should be done.
BAPI BUS2014 (PURCONTRACT_CREATE01) would've been my preferred option, but it doesn't have the ESLL structure.
Thank you.Since you have the same problem the earlier answer should work for you too.
Search for OSS notes with the keywords: BLAORD service
I can see 16, none of them says that it is not possible, contrary some have bug fixes.
Only the KBA 1603760 - MEMASSCONTRACT for services - External Services Management
explains that "MEMASSCONTRACT does not support the mass change to service lines"
but this is a little different story -
Message control for outline contract BLAORD.BLAORD03
Hi There,
I am configuring outline contract idoc BLAORD.BLAORD03, I want to know what are the message control parameters for that?
Application: -
Message Type: -
Process Code: -
Thanks,
NishantHi Nishant,
Check the Tcode WE82 for Mesage type and Basic type of ur idoc,
Check the Tcode WE40 for Inbound process code
check the Tcode WE41 for outbound process code.
Messagetype is BLAORD
InboundProcess code is BLAO
Function module name is IDOC_INPUT_BLAORD
for application try with WT
Thanks,
Ram. -
A problem with Threads and loops.
Hi, I have some code that needs to be constantly running, like while(true)
//code here
}However, the code just checks to see if the user has input anything (and then if the user has, it goes to do some other stuff) so I don't need it constantly running and hogging up 98% of the CPU. So I made my class (which has the method that needs to be looped, call it ClassA) implement Runnable. Then I just added the method which needed to be looped into the public void run()
I have another class which creates an instance of the above class (call it ClassB), and the main(String[] args) is in there.
public static void main(String[] args)
ClassA test = new ClassA();
Thread thread = new Thread(test.getInstanceOfClassA());
thread.start();
while(true)
//I do not know what to put here
try
thread.sleep(100);
catch(InterruptedException iex)
}However, the thread only calls run() once,(duh...) but I can't think of away to get it to run - sleep - run -sleep forever. Can someone help me?Hi, I have some code that needs to be constantly
running, like while(true)
//code here
}However, the code just checks to see if the user has
input anything (and then if the user has, it goes to
do some other stuff) so I don't need it constantly
running and hogging up 98% of the CPU. Where does the user input come from. Are you reading from an InputStream? If so, then your loop will be blocked anyway when reading from the InputStream until data is available. During that time, the loop will not consume processor cycles.
public static void main(String[] args)
ClassA test = new ClassA();
Thread thread = new Thread(test.getInstanceOfClassA());I have never seen this idiom. If ClassA instanceof Runnable, you simply write new Thread(test).
thread.start();
while(true)
//I do not know what to put
do not know what to put here
try
thread.sleep(100);
catch(InterruptedException iex)
}However, the thread only calls run() once,(duh...)Yeah, why would you want to call it more than once given that you have an infinite loop in ClassA.run()?
Harald.
Java Text Crunching: http://www.ebi.ac.uk/Rebholz-srv/whatizit/software -
A problem with Threads and MMapi
I am tring to execute a class based on Game canvas.
The problem begin when I try to Play both a MIDI tone and to run an infinit Thread loop.
The MIDI tone "Stammers".
How to over come the problem?
Thanks in advance
Kobi
See Code example below:
import java.io.IOException;
import java.io.InputStream;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.media.Manager;
import javax.microedition.media.MediaException;
import javax.microedition.media.Player;
public class MainScreenCanvas extends GameCanvas implements Runnable {
private MainMIDlet parent;
private boolean mTrucking = false;
Image imgBackgound = null;
int imgBackgoundX = 0, imgBackgoundY = 0;
Player player;
public MainScreenCanvas(MainMIDlet parent)
super(true);
this.parent = parent;
try
imgBackgound = Image.createImage("/images/area03_bkg0.png");
imgBackgoundX = this.getWidth() - imgBackgound.getWidth();
imgBackgoundY = this.getHeight() - imgBackgound.getHeight();
catch(Exception e)
System.out.println(e.getMessage());
* starts thread
public void start()
mTrucking = true;
Thread t = new Thread(this);
t.start();
* stops thread
public void stop()
mTrucking = false;
public void play()
try
InputStream is = getClass().getResourceAsStream("/sounds/scale.mid");
player = Manager.createPlayer(is, "audio/midi");
player.setLoopCount(-1);
player.prefetch();
player.start();
catch(Exception e)
System.out.println(e.getMessage());
public void run()
Graphics g = getGraphics();
play();
while (true)
tick();
input();
render(g);
* responsible for object movements
private void tick()
* response to key input
private void input()
int keyStates = getKeyStates();
if ((keyStates & LEFT_PRESSED) != 0)
imgBackgoundX++;
if (imgBackgoundX > 0)
imgBackgoundX = 0;
if ((keyStates & RIGHT_PRESSED) != 0)
imgBackgoundX--;
if (imgBackgoundX < this.getWidth() - imgBackgound.getWidth())
imgBackgoundX = this.getWidth() - imgBackgound.getWidth();
* Responsible for the drawing
* @param g
private void render(Graphics g)
g.drawImage(imgBackgound, imgBackgoundX, imgBackgoundY, Graphics.TOP | Graphics.LEFT);
this.flushGraphics();
}You can also try to provide a greater Priority to your player thread so that it gains the CPU time when ever it needs it and don't harm the playback.
However a loop in a Thread and that to an infinite loop is one kind of very bad programming, 'cuz the loop eats up most of your CPU time which in turn adds up more delays of the execution of other tasks (just as in your case it is the playback). By witting codes bit efficiently and planning out the architectural execution flow of the app before start writing the code helps solve these kind of issues.
You can go through [this simple tutorial|http://oreilly.com/catalog/expjava/excerpt/index.html] about Basics of Java and Threads to know more about threads.
Regds,
SD
N.B. And yes there are more articles and tutorials available but much of them targets the Java SE / EE, but if you want to read them here is [another great one straight from SUN|http://java.sun.com/docs/books/tutorial/essential/concurrency/index.html] .
Edited by: find_suvro@SDN on 7 Nov, 2008 12:00 PM -
Problem with Threads and a static variable
I have a problem with the code below. I am yet to make sure that I understand the problem. Correct me if I am wrong please.
Code functionality:
A timer calls SetState every second. It sets the state and sets boolean variable "changed" to true. Then notifies a main process thread to check if the state changed to send a message.
The problem as far I understand is:
Assume the timer Thread calls SetState twice before the main process Thread runs. As a result, "changed" is set to true twice. However, since the main process is blocked twice during the two calls to SetState, when it runs it would have the two SetState timer threads blocked on its synchronized body. It will pass the first one, send the message and set "changed" to false since it was true. Now, it will pass the second thread, but here is the problem, "changed" is already set to false. As a result, it won't send the message even though it is supposed to.
Would you please let me know if my understanding is correct? If so, what would you propose to resolve the problem? Should I call wait some other or should I notify in a different way?
Thanks,
B.D.
Code:
private static volatile boolean bChanged = false;
private static Thread objMainProcess;
protected static void Init(){
objMainProcess = new Thread() {
public void run() {
while( objMainProcess == Thread.currentThread() ) {
GetState();
objMainProcess.setDaemon( true );
objMainProcess.start();
public static void initStatusTimer(){
if(objTimer == null)
objTimer = new javax.swing.Timer( 1000, new java.awt.event.ActionListener(){
public void actionPerformed( java.awt.event.ActionEvent evt){
SetState();
private static void SetState(){
if( objMainProcess == null ) return;
synchronized( objMainProcess ) {
bChanged = true;
try{
objMainProcess.notify();
}catch( IllegalMonitorStateException e ) {}
private static boolean GetState() {
if( objMainProcess == null ) return false;
synchronized( objMainProcess ) {
if( bChanged) {
SendMessage();
bChanged = false;
return true;
try {
objMainProcess.wait();
}catch( InterruptedException e ) {}
return false;
}Thanks DrClap for your reply. Everything you said is right. It is not easy to make them alternate since SetState() could be called from different places where the state could be anything else but a status message. Like a GREETING message for example. It is a handshaking message but not a status message.
Again as you said, There is a reason I can't call sendMessage() inside setState().
The only way I was able to do it is by having a counter of the number of notifies that have been called. Every time notify() is called a counter is incremented. Now instead of just checking if "changed" flag is true, I also check if notify counter is greater than zero. If both true, I send the message. If "changed" flag is false, I check again if the notify counter is greater than zero, I send the message. This way it works, but it is kind of a patch than a good design fix. I am yet to find a good solution.
Thanks,
B.D. -
Problem with Threads and "plase wait..."-Window
Hi everyone,
I have a problem that I'm not able to solve in any way... I have a time-consuming task (a file decryption) which I execute in a separate thread; I've used the SwingWorker class, like suggested by sun-tutorial, and it works right. The problem is that I have to wait that the decryption have finished before continuing with program-execution. Therefore I would like to display a "please wait"-window while the task runs. I've tryed all the possible ways I know but the problem is always the same: the waitWindow is displayed empty, the bounds are painted but the contents no; it's only painted when the decrypt-task has finished. Please help me, I have no more resources....
decrypt-file code:
public class DecryptFile {
private String cryptedFileNameAndPath;
private ByteArrayInputStream resultStream = null;
// need for progress
private int lengthOfTask;
private int current = -1;
private String statMessage;
public DecryptFile(String encZipFileNameAndPath) {
cryptedFileNameAndPath = encZipFileNameAndPath;
//Compute length of task...
// 0 for indeterminate
lengthOfTask = 0;
public ByteArrayInputStream getDecryptedInputStream() {
return this.resultStream;
* Called from ProgressBarDemo to start the task.
public void go() {
current = -1;
final SwingWorker worker = new SwingWorker() {
public Object construct() {
return new ActualTask();
worker.start();
* Called from ProgressBarDemo to find out how much work needs
* to be done.
public int getLengthOfTask() {
return lengthOfTask;
* Called from ProgressBarDemo to find out how much has been done.
public int getCurrent() {
return current;
public void stop() {
current = lengthOfTask;
* Called from ProgressBarDemo to find out if the task has completed.
public boolean done() {
if (current >= lengthOfTask)
return true;
else
return false;
public String getMessage() {
return statMessage;
* The actual long running task. This runs in a SwingWorker thread.
class ActualTask {
ActualTask () {
current = -1;
statMessage = "";
resultStream = AIUtil.getInputStreamFromEncZip(cryptedFileNameAndPath); //here the decryption happens
current = 0;
statMessage = "";
}The code that calls decryption and displays waitWindow
final WaitSplash wS = new WaitSplash("Please wait...");
final DecryptFile cryptedTemplate = new DecryptFile (this.templateFile);
cryptedTemplate.go();
while (! cryptedTemplate.done()) {
try {
wait();
} catch (Exception e) { }
this.templateInputStream = cryptedTemplate.getDecryptedInputStream();
wS.close();Thanks, thanks, thanks in advance!
EdoardoMaybe you can try setting the priority of the long-running thread to be lower? so that the UI will be more responsive...
Maybe you are looking for
-
Report on active sync actions (like starting and stopping the sync)
Is there a way to report on who stopped or started an active sync? I'm guessing it has to be stored somewhere, but I can't find it. Thanks!
-
Anyone finding it the mac completely freezes with the new lion software?
have just converted from PC and downloaded the new OS X Lion.. anyone finding it freezing quite frequently?
-
Hi, There are certain function modules in CRM 5.0 which has attribute as 'Remote-Enabled Function Module'. An example of it is 'CFG_API_GET_KNOWLEDGEBASE'. Kindly let me know how to test them and use them. Thanks in advance.
-
Street date for SQL Developer 3.0
Does anyone know when this will be released? I saw a neat-o presentation at OpenWorld and can't wait to get my hands on it.
-
Illustrator CS5 OSX 10.6.7 - Shift key not working properly.
The shift key no longer works as it should in illustrator ie. doesn't constrain proportions. I've searched around for this problem and none of the solutions have worked. I have tried restarting my mac; closing all applications and reopening Illustrat