BADI BBP_CREATE_BE_PO_NEW for PO created from Bid.
Hi gurus.
Iu2019m working in classic scenario, and I need to change PO data before to create the PO in ECC.
When we create a PO form SC we can change data in BADI BBP_CREATE_BE_PO_NEW (methods FILL_PO_INTERFACE and FILL_PO_INTERFACE1) without problem. But when we create a PO from a BID the BADI doesnu2019t work.
If we fix a break-point the system stop for PO created from SC, but doesnu2019t stop for PO from Bid.
Any suggest?
Thanks and regards.
Raúl.
What you can try is to use the BBP_DOC_CHANGE_BADI for BID: when price is 0: clear IR_IND (invoice expected) and GR_IND (goods receipt expected) on item level. Be prepared for SRM putting back those indicators though (SRM gets these from the vendor details).
The badi you mentioned in your first post should be the one you have to use as you are in classic mode. I would raise an OSS note because the way you use the badi is correct - it should be called and if it doesn't SAP has to provide a solution.
Maybe there is a user-exit in ECC in the function module that creates the order (BAPI_PO_CREATE1) as a (hopefully temporary) work around.
Regards,
Robin
Similar Messages
-
FramePosicioningControl for processor created from list of images
Hi,
I need to create a FramePositioningControl for processor created from a list of bufferedimages.
I 've followed the instructions in the next code:
http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/solutions/JpegImagesToMovie.html and
http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/solutions/Cut.html
First thing i do is create a source stream for the list of bufferedimage: SourceStream class.
Then i created a data source that contains an instance of SourceStream: ListImageDataSource class
Finally i created a processor using an instance of ListImageDataSource.
I get the next error when i try to create FramePositioningControl control for that processor:
The processor does not support FramePositioningControl.
The example program is the next. Its a little long but easily understandable.
I test my program with a video file and it works but when i try test it from a list of images i get the error.
Can it be because format chosen of every image? i use RGB but i dont know if that is correct
I need to have a method called getFrame(int index) that returns the frame at the specified index.
If a processor doesnt support framepositioningcontrol when it is created from a list of image, can i use a interface (seekable or other) to do that?
import java.awt.Dimension;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Vector;
import java.net.*;
import java.io.*;
import javax.imageio.*;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import javax.media.Buffer;
import javax.media.ConfigureCompleteEvent;
import javax.media.ControllerEvent;
import javax.media.ControllerListener;
import javax.media.EndOfMediaEvent;
import javax.media.Format;
import javax.media.Manager;
import javax.media.PrefetchCompleteEvent;
import javax.media.Processor;
import javax.media.RealizeCompleteEvent;
import javax.media.ResourceUnavailableEvent;
import javax.media.Time;
import javax.media.control.FrameGrabbingControl;
import javax.media.control.FramePositioningControl;
import javax.media.control.TrackControl;
import javax.media.format.VideoFormat;
import javax.media.protocol.ContentDescriptor;
import javax.media.protocol.PullBufferDataSource;
import javax.media.protocol.PullBufferStream;
public class PositionableVideo implements ControllerListener{
Processor p = null;
Object waitSync = new Object();
boolean stateTransitionOK = true;
int width = 0;
int height = 0;
FramePositioningControl fpc = null;
FrameGrabbingControl fgc = null;
int totalFrames = 0;
ListImageDataSource ids = null;
public static void main(String args[]){
String [] images = {"http://farm3.static.flickr.com/2084/2068533005_87b8b15914_m.jpg",
"http://farm1.static.flickr.com/158/336360357_3a183e2e61_m.jpg"};
Vector<BufferedImage> bivector = new Vector<BufferedImage>(images.length);
for(int i = 0; i < images.length; i++){
System.out.println("Reading image: "+(i+1)+"/"+images.length);
try{
URL url = new URL(images);
bivector.add(ImageIO.read(url));
}catch(Exception e){
System.err.println("Error loading images: "+e);
System.out.println("Images read");
PositionableVideo pv = new PositionableVideo(bivector, 25);
pv.getClass();
public PositionableVideo(Vector<BufferedImage> images, int frameRate) throws NullPointerException{
if(images != null){
ids = new ListImageDataSource(images, frameRate);
if(!open(ids)){ return; }
System.out.println("JMFVideo created");
else{
throw new NullPointerException();
private boolean open(ListImageDataSource ids){
try {
p = Manager.createProcessor(ids);
} catch (Exception e) {
System.err.println("Cannot create a processor from the data source");
return false;
p.addControllerListener(this);
p.configure();
if (!waitForState(p.Configured)) {
System.err.println("Failed to configure the processor");
return false;
// p.setContentDescriptor(null);
// Query for the processor for supported formats.
// Then set it on the processor.
/*TrackControl tcs[] = p.getTrackControls();
Format f[] = tcs[0].getSupportedFormats();
for(int i = 0; i <tcs.length; i++){
Format fc[] = tcs[i].getSupportedFormats();
if (f == null || f.length <= 0) {
System.err.println("The mux does not support the input format: " + tcs[0].getFormat());
return false;
tcs[0].setFormat(f[0]);
System.out.println("Setting the track format to: " + f[0]);
// Put the Processor into realized state.
p.realize();
if (!waitForState(p.Realized)) {
System.err.println("Failed to realize the processor");
return false;
// Prefetch the processor.
p.prefetch();
if (!waitForState(p.Prefetched)) {
System.err.println("Failed to prefetch the processor");
return false;
System.out.println("start processing...");
// OK, we can now start the actual transcoding.
p.start();
//wait to images are ready: try{Thread.sleep(3000);}catch(Exception e){}
// Create a frame positioner.
fpc = (FramePositioningControl) p.getControl("javax.media.control.FramePositioningControl");
if (fpc == null) {
System.err.println("The processor does not support FramePositioningControl");
return false;
// Create a frame grabber.
fgc = (FrameGrabbingControl) p.getControl("javax.media.control.FrameGrabbingControl");
if (fgc == null) {
System.err.println("The processor does not support FrameGrabbingControl");
return false;
return true;
private boolean waitForState(int state) {
synchronized (waitSync) {
try {
while (p.getState() != state && stateTransitionOK)
waitSync.wait();
} catch (Exception e) {}
return stateTransitionOK;
public void controllerUpdate(ControllerEvent evt) {
if (evt instanceof ConfigureCompleteEvent ||
evt instanceof RealizeCompleteEvent ||
evt instanceof PrefetchCompleteEvent) {
synchronized (waitSync) {
stateTransitionOK = true;
waitSync.notifyAll();
} else if (evt instanceof ResourceUnavailableEvent) {
synchronized (waitSync) {
stateTransitionOK = false;
waitSync.notifyAll();
} else if (evt instanceof EndOfMediaEvent) {
p.close();
System.exit(0);
class ListImageDataSource extends PullBufferDataSource{
SourceStream streams[] = null;
Time duration = null;
public ListImageDataSource(Vector<BufferedImage> images, int frameRate) throws NullPointerException{
if(images != null){
streams = new SourceStream[1];
streams[0] = new SourceStream(images, frameRate);
duration = new Time( ((double) images.size() / frameRate) ); //seconds
else{
throw new NullPointerException();
public PullBufferStream[] getStreams() { return streams; }
public void connect(){}
public void disconnect(){}
public void start(){}
public void stop(){}
//Content type is of RAW since we are sending buffers of video frames without a container format
public String getContentType() { return ContentDescriptor.RAW; }
public Time getDuration(){ return duration; }
public Object[] getControls() { return new Object[0]; }
public Object getControl(String type) { return null; }
class SourceStream implements PullBufferStream {
Vector <BufferedImage> images;
int width, height;
VideoFormat format;
int frameRate;
int nextImage = 0; // index of the next image to be read.
boolean ended = false;
public SourceStream(Vector <BufferedImage> images, int frameRate) {
this.width = images.get(0).getWidth();
this.height = images.get(0).getHeight();
this.frameRate = frameRate;
this.images = images;
format = new VideoFormat(VideoFormat.RGB, new Dimension(width, height),
Format.NOT_SPECIFIED, Format.intArray, (float) frameRate);
public boolean willReadBlock() { return false; }
public int getFrameRate() { return frameRate; }
public void read(Buffer buf) throws IOException {
if (nextImage >= images.size()) { // Check if we've finished all the frames.
buf.setEOM(true);
buf.setOffset(0);
buf.setLength(0);
ended = true;
return;
Object data = buf.getData();
int maxDataLength = width * height * 3;
// Check to see the given buffer is big enough for the frame.
if (data == null || !(data.getClass() == Format.intArray) ||
((int[]) data).length < maxDataLength) {
data = new int[maxDataLength];
buf.setData(data);
BufferedImage bi = images.get(nextImage);
bi.getRGB(0, 0, width, height, (int[]) data, 0, width);
Save every image. It works
try{
OutputStream salida = new FileOutputStream( "frame"+data.toString()+".jpeg" );
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder( salida );
encoder.encode(bi);
salida.close();
} catch(IOException e){}
buf.setOffset(0);
buf.setLength(maxDataLength);
buf.setFormat(format);
buf.setFlags(buf.getFlags() | buf.FLAG_KEY_FRAME);
buf.setSequenceNumber(nextImage);
buf.setTimeStamp( (long) (nextImage * (1000 / frameRate) * 1000000) );
nextImage++;
public ContentDescriptor getContentDescriptor() {
return new ContentDescriptor(ContentDescriptor.RAW);
public Format getFormat() { return format; }
public long getContentLength() { return 0; }
public boolean endOfStream() { return ended; }
public Object[] getControls() { return new Object[0]; }
public Object getControl(String type) { return null; }
Thanks so muchThanks.
I found a way of doing it by creating a view and calling it recursively everytime a user swipes -
What are the naming conventions used for aggregates created from Query?
What are the naming conventions used for aggregates created from Query?
Hi Reddy,
As you know aggregates are baby cubes right.
Aggregate names by default system has given as 6 digit number like 100831 but write the description by yourself.
Here you have to remember fact table is created with the name
like for ex: /BIC/F100831.
while creating aggregates you can observe all options carefully till complete the creation process then after I am sure about
your can get idea .
If problem still persists with you let me know the same until
get out of that.
else assign points if this is sufficient.
Thanks,
Ramki -
Change status of PO created from Bid response
Hi,
Can anyone let me know - which BADI or IMG Setting can be used to change the PO status to customized user status while creating Purchase Order from Bid Response accepted from a vendor ?
Regards,
RajeshreeHi All,
I tried using the SPRO settings for creating status profile with all user defined statuses and then attached this status profile to the transaction type for BUS2201 (PO) but it does not work. PO always shows awaiting approval status.
Do we have to implement a BADI in this case ?? please suggest...something.
BR,
Rajeshree -
Standard process for PO creation from Bid Invitation or Bid
Hi everybody,
I would like to know what is the standard process to create local Purchase Order (i mean in a extended classic scenario) from Bid Invitation or Quotation.
In the current process, Bid Invitation are created form Shopping Cart using Sourcing Cockpit. Then, Purchaser will send its Bid to supplier (by publishing Bid Invitation) using BBP_BID_INV transaction.
Then, supplier will submit its Bid.
At this step, what it is the standard process (does it exist ?) to create a Purchase Order linked to this Bid ?
The need is to have a PO as follow-on document to Bid.
Thank you to clarify this point.
Regards.
Laurent Burtaire.Hi,
After the bids are submitted and when the bid invitation opening date arrives, there will be a map for you to compare the bids received.
To see this map, go to BBP_BID_INV transaction and the map will be there when you search your document.
When you click on this map, you will find one column for each of the companies that sent quotations.
You can click on the company's name and then you need to click on button 'Accept', in order to accept the company's quotation.
Then you click on 'Refresh'.
Then you click on 'Create Purchase Order' or 'Create Contract'.
In order for that to happen, you must have defined number ranges and document types for bid invitation, quotation and purchase order.
Let me know if it helped.
Regards,
Henrique -
Change item category for PR created from SCM system
Hi All,
I want to change the item category field from value '7' to '0' for the purchase requests created from SCM system.
I have tried the exit CIFPUR02.
But the PRs are not getting created if change hte item category.
Please advice how I can achieve this.
Regards,
Shobana.KFixed it myself
-
Release strategy for PREQs created from PM work order
Hi All,
I have an issue with determining release strategy for purchase requisition for external services created via PM work order (iw31 transaction).
We have activated release strategy for Purchase requisition based on the following characteristics:
CEBAN_PLANT
CEBAN_COST_CENTER_GROUP
CEBAN_MANUAL
Characteristic CEBAN_COST_CENTER_GROUP is defined via user exit based on the cost center used in the PREQ and a z table which contains all cost centers mapped to the corresponding cost center goups.
In the user exit we have consider to cases:
The first one is when a purchase requisition is created with account assignment K (cost center) then system is checking the z table and determines the right cost center group.
The second case is when a purchase requisition is created with account assignment F (internal order) then based on the order type and number the cost center in the order is defined and based on it the corresponding entry in the z table cost center group is assigned.
The third case is when purchase requisition for services is created automatically from PM work order. In this case the PREQ is again with account assignment F, but at the time when user exit is checking the input parameters the real number of the work order does not exist and system can not defined the other parameters.
We have defined for this requisitions in the release strategy for characteristic CEBAN_MANUAL creation indicator " F".
Has anybody of you defined release strategy for PREQs created out of work order before. How did you manage to trigger the release strategy?
Best Regards,
DesislavaHi,
For PM order find the costcenter in the settlement rule of the order or else find the costcenter in the Location tab of the order.
Consider this filed from order & write in the Z program to pick up the costcenter from there to find out the cost center group.
Regards,
Raj -
BAPI needed for goods receipt for delivery created from sales order
Hi experts,
I need help.
I want to post goods receipt for the delivery created from sales order. I have tried out BAPI BAPI_GOODSMVT_CREATE but I am not able to post it.
Is there any way to post this? I need BAPI and not FM MB_*....
Thanks & REgards,
Bhavin A. ShahHi,
Please refer to link,
https://wiki.sdn.sap.com/wiki/display/Snippets/BAPI_GOODSMVT_CREATE-ABAP
Regards
Shree -
Release Strategy for reservation created from PM and PS
Dear All,
How to configure the release strategy for reservation generated from PM and PS.
Regards,
Atanudo you talk about release strategie for requisitions, or really reservations?
-
BADI implementation for importing values from excel
Hi All,
This is my first ever post in this forum and I am a newbie in ABAP. I have this doubt rather I would say I am stuck while implementing a BADI for importing Excel values.
We have a BADI for 'Upload flow rate' button which is built on PLM frame work on webdynpro.
The requirement is that after clicking the ' 'Upload flow rate' button it should prompt for selecting the excel file and after selecting that file, the values should get loaded to the internal table.
what I have tried till now is that
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
I_FIELD_SEPERATOR =
I_LINE_HEADER = 'X'
I_TAB_RAW_DATA = IT_RAW " WORK TABLE
I_FILENAME = 'C:\abcdl\book1.xlsx'
TABLES
I_TAB_CONVERTED_DATA = lt_result
EXCEPTIONS
CONVERSION_FAILED = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
endmethod.
I tried hard coding the xls file but it gives error as 'CNTL_error' which I guess is a known issue when we use this function module in webdynpro.
So how can I get the values from excel without using datasource and just by hard coding the file name?
Regards,
Anand
AnandThere is no solution to this - SAP have said they will re-introduce this functionality, but they havent said when (as far as I am aware).
However, we have developed a workaround (for Web reports anyway), let me know if you are interested.
Patrick -
PO Output for Communication doesn't work for POs created from a requisition
Hi gurus,
When I create a PO using the standard PO form, I have no problem generating the xml tags in the log file when I run the PO Output for Communication (using Debug option).
When I create a requisition from Iprocurement, it automatically generates a PO. If I run the PO Output for communication for this PO, it gives me a bunch of gibberish data in the log file. like little squares and symbols.
Can anyone help me on this. We are using R12.
Thanks in advanced!This Program "PO Output for Communication" does effects in other parts.
I mean that this program actually sends an email (or fax or print) along with the PO in PDF attachment or in the TEXT format.
This program does other part than the above mentioned point also.If yes then provide me the information in which other parts this program effects.I believe it is only the part you mentioned above.
PO Output for Communication
http://docs.oracle.com/cd/E18727_01/doc.121/e13410/T446883T443960.htm#srs.poxpopdf
PO Output for Communication Search
http://www.oracle.com/pls/ebs121/search?word=PO+Output+for+Communication&format=ranked&remark=quick_search
Thanks,
Hussein -
User Exit / BADI available for PC00_M99_FPAYM - Create DME -Payment Medium?
Hi All,
We need to create a secure FTP process (SFTP) from SAP payroll system to the third party Finance syem to transfer Bank Files.
As of now, the Bank files generated using the above transaction is downloaded into local PC and manually uploaded in the Finance system.
However, we want to eliminate this manual intervention and send the generated Bank file directly to Finance system using SFTP.
Is there any User exit or BADI available to do this automation, once the user presses the Download button in PC00_M99_FPAYM program aftyer displaying the file?
If any of you have encountered similar requirement, please let me know how to proceed. Or any other suggestions to accomplish the required functionality?
Thanks & Regards,
Anshumita.Here are the exits available in that TCode.
Enhancement
HRPCAL00 User exit p/reports de clientes no menu cálculo folha pgto.
HRPY0001 Definição da data início/fim p/os registros dados acumulação
Business Add-in
HR_PY_OUT_OF_SEQ Exits países p/rotina principal do cálculo folhas pagamento
HR_PY_ENQUEUE BAdI: atividades adicionais para empregados bloqueados
HR_PY_CLST_DISP PC_PAYRESULT: exit de país antes da exibição de uma tabela
HR_PY_AUTH_PU01 Verificação de autorização própria do cliente PU01
HRPAY99_KTO Permite operações diferentes em relação a conta folha pgto.
HRPAY00_PRE_DME Exit p/programa prévio intercâmbio dados suporte magnético
HRPAY00_PAYMENTS Exit para a interface de transferência CL_HRPAY00_PAYMENTS
HRPAY00_ESS_PAYSLIP Verificar se comprovante remuneração só é acessível via ESS
HRPAY00_COL_DME_KEYS Chave de compactação para transferências coletivas
HRPAY00_COL_DME Motivo da operação na transferência coletiva
BADI_OCWB_REVERSAL Workbench off-cycle: excluir pagamento para estorno -
Syncing problems for playlists created from coverting 33 records
My kids recently purchased Deck USB turntable that converts older 33 records into MP3 file format. I successfully converted and loaded to I-tunes. They play inside I-tunes, but are not synced or moved to I-Touch. Help!!
did you get a solution for this issue. I am trying to generate a stub to connect to a webservice i created by exposing my stateless session EJB as a web service, using annotations. I want to create a client stub using the clientgen from weblogic 81. I am unable to do this, do you have any solution to this.
-
Hi Experts,
My requirement is that smart-form spool will be converted into PDF and will be saved on to application server. Now, a third party tool will read the data and print it. I want to update properties of this PDF like author, keywords. These properties can be seen when we save PDF on desktop and right-click on it.
Please provide pointers to address this issue. Any input will be highly appriciated.
Regards,
Gouri.Hi,
Its good that u pasted the complete log file. In your environment you have to run this upgrade tool only once from any of the middle tier.
And with respect to your error that u got in precheck is quite simple. All u have to do is just run this script from by connecting to portal schema using sqlplus.
Run dropupg.sql
Location-------- /raid/product/OraHome_1/upgrade/temp/portal/prechktmp/dropupg.sql
Later you re-run the upgrade tool and let me know the status.
Good luck
Tanmai -
Need Transparent background for video created from Photoshop Imageready
I created a
a man in imageready walking across the screen with a transparent background. I exported as an .mov like I normally do and converted to a
n F4v. But when placed in ID, the video displays with a black BG. Can anyone help? thanksto get the transparent effect, you actually code it into the
surrounding .html using "wmode=transparent" Google that and you
should fine a tutorial. Remember that when you actually put in
wmode and its value that you need to paste it in there twice (just
like all the other tags that are already there).
Maybe you are looking for
-
Need to change time zone in PI 7.3 system
Hi Experts, I want to change the time zone in PI system to CET to IST. Kindly help. Thanks, Hemanth
-
I was using my iTunes yesterday, and it was in English, today I opened the program and everything was in Russian. Why did this happen? and how do I change it back, as the language options are also in Russian.
-
Blocking of a Particular Payment term
Dear Experts, We want to block some payment terms.The users could not able to select these payment terms while creating a PO. Please provide me a solution. Regards, Rajesh kumar
-
I have used PE in various versions for years. Most of this year I've used PE7 which works perfectly on my PC, the only reason I upgraded to PE8 was to use the Effects Mask facility. This is the only reason, and now I have to say I so exasperated I'm
-
How does Time Machine decide what to delete when its disk gets full?
Time Machine deletes the "oldest" backups when it needs more room for a new backup. But exactly what does that mean? Does it delete the oldest backups for the disk being backed up? Or does it delete the oldest backups across all source disks? For exa