How does a program knows whether it runs asynchronous?

We have a tool which runs fine at several systems, but fails for one customer.
It displays a list of analysed data and offers the option to update some material master data to adapt mrp data of material master to the real situation of selected material. The update is done with an asynchronous call of function material_maintain_dark, results (success or error messages) are written to sytem log.
In one system this logic fails, because customer has an implementation in one of the user exits of function material_maintain_darc which calls a popup.
    IF sy-batch IS INITIAL AND sy-binpt IS INITIAL.
      CLEAR: l_text_table[], l_text_table.
      MESSAGE w001(z_sdc) INTO l_text_table-tdline.
      APPEND l_text_table.
      CALL FUNCTION 'COPO_POPUP_TO_DISPLAY_TEXTLIST'
        EXPORTING
          titel      = 'Warning'
        TABLES
          text_table = l_text_table.
    ENDIF.
Popup correctly will not be displayed when programm runs in batch mode.I think we need a similar check to avoid the popup when the program runs asynchronously, but I could not find any matching indicator in structure syst (I could not find documentation for really all fields) or anywhere else.
Can anyone help and tell me how I can check at runtime whether a program runs asynchronously.

It was not my decision to use this popup. Customer has it as own coding in an unserexit of function material_maintain_dark  probably created during implementatiion project by customer himself or any consultants.
We delivered a 'consulting solution', a program which uses function material_maintain_dark and works fine on several other customers systems, where no user exit is implemented.
Customer regards it as an error of our customer solution, that the booking of changes of material master, which is triggered by our program does not work in his system: There only is a message, that program is triggered, but it cannot be completed properly and they see neither results in material master nor entries in system log.
My idea was to add a check, whether the function material_maintain_dark was triggered by our customer solution via call function.. starting new task or whether it is used by any of the customers own processes, but I have no idea how to find out, whether function was called with or without 'starting new task'.

Similar Messages

  • How do  offcard program know whether the applet has been personalizated?

    The offcard program want to know whether the applet has been personalizated. if Y . the offcard program don't send the personalization command to the applet. anyway to inqury the applet state in offcard program. thxs

    I don't know what card framework (OCF, JCOP tools or other) you use.
    For the JCOP tools framework it is very simple. Connect to your applet by creating an instance of the com.ibm.jc.OPApplet. This class has a method called public int getState() wich returns "the applet privileges" in form the flags NOT_AVAILABLE, LOGICALLY_DELETED, INSTALLED, SELECTABLE, PERSONALIZED, BLOCKED and LOCKED.
    Jan

  • How does the system knows hire action first

    Hi all,
    Iam new to this community, recently i have joined as an SAP HR trainee ,and i am undergoing SAPHR training Programme.
    why can't the system allow us to do promotion action before Hire action?where do we configure this to make it happen, how does the system knows to do the Hire action first, where are the settings for this..
    Swathi

    hai
    there are a number of programmes running in the back groung when u do any application.
    the validations will be written in them
    when u try to do something through the programe running at the back ground does these validations  like the example u have taken when u do the promotion action it checks whether actions exists or not if not then it throws the error written in the program.
    regards
    nalla

  • App-V'ed program knows it's running in c:\programdata\microsoft\appv\guid

    I have a package for some software called RelayCare.  It sequences fine, and the package runs, 99% of the functionality works.
    One part does not work - there's a .rpt viewer built in, might be Crystal, not 100% sure.  The rpt files regularly get updated so I do not want them in the package.
    The primary application virtual directory is c:\program files (x86)\relaycare
    In relaycare\cecclient\reports, those .rpt files sit.
    So, if I delete the folder when packaging, the report folder gets excluded.  
    I can copy the files to the local PC running the published appv package, to c:\program files(x86)\relaycare\cecclient\reports
    The app, however, does not see the files.  When I try to run a report, it says xxx.rpt file not found in c:\programdata\microsoft\appv\guid\root\relaycare\cecclient\reports 
    How the heck does it know where it's running? 
    If I run cmd /appvve:guid_vid, I can see that the files are merging properly in 
    c:\program files(x86)\relaycare\cecclient\reports - the local folder is taking precedence as desired
    Long story short, how does this app know about the c:\programdata folder, is that avoidable, so it looks in the right place for the reports?  
    If it's not avoidable, can the appv programdata package folder have files dropped in there?  If I try - I get permission denied even as an administrator.  
    The .rpt files really can't go into the package, they change too much.
    Figured I'd try to ask here, I'm out of ideas...
    Thanks!

    Is there a setting that you know of to change the report directory?  What do you do in a traditional install?  Do you ACL the report folder for the user and they can drop in new reports whenever they want?  Do you not have to update the package
    now when the reports update?
    Even though App-V sets up a virtual environment, that doesn't mean an exe can't know where it is.  I believe the term is called  reflection, but if the exe basically asks where it is, it gets the literal path, ie C:\Programdata\....
    What could be happening is the exe is always assuming that a subfolder (a relative path) to itself has the reports.
    If you can package the software to VFS that may solve the issue... I don't know off the top of my head if App-V redirects calls made to the non-virtualized path (C:\Programdata\....\root\VFS\PROGRAMFILES86 as a bad example) and treats them like calls made
    to the VE.   My gut is no, that if the app tries to write that way it will get an access denied it has to go to the virtualized path of C:\Program Files (x86)\....
    Also about including the reports in the package... how are users expected to update the report files?  If the user typically (for example) goes into Windows explorer, and drags new report files into the dir that won't be user friendly anymore.
    However if the software itself has an import where the user selects new files and then the program puts them where it wants, that may work.
    Obviously this is all theoretically speaking, my main point is you have to consider the user interaction that is appropriate before you can determine what you do next.  A good place to start that conversation is what do they do normally, outside of
    App-V.  People have had success create a junction point inside the VE to redirect reads/writes to a different location.  I haven't done so myself but that may also help you out.
    Worst come to worst, you might be able to drop the exe onto the real file system, and treat it like an outside application.  We had to do this for an app with a similar problem...it wanted to write to a subfolder and used its own current directory as the
    starting point, and you can't write to C:\Programdata\...
    We used the Add package scripting to drop the exe 'outside', and because the exe is now outside, App-V will create the shortcut like app.exe /appvve:guid_vid, and if the exe looks at its own location it will see where you drop it to, not the virtualised
    path.
    EDIT: Just thought of this...I wonder if you could use a shim to trick the app into believing it is launching from C:\Program Files instead of the C:\Programdata location.

  • Applications: How does OS X Know Which App to Reference a File to?

    I just got my new Macbook and while installing applications, a question I've had for a while came up again.
    How does OS X know to reference applications to certain file types?
    For example. I have a .avi I downloaded to watch, and downloaded VLC to watch it. I open the .dmg and drag/drop VLC to my Applications folder. Instantly, VLC appears in the "Open With" list for my .avi. How does it know to list it?
    My theories are:
    1. When dragging/dropping VLC, it's not just copying files, it's also doing some background stuff, including VLC telling OS X that it should be referenced for .avi files
    2. When I "Open With" a file, OS X looks at apps in my Applications folder and detects applicable ones in some manner.
    3. It's Voodoo magic.
    How does it work? I hope my question makes sense.
    Thanks!

    From what I understand, the second the .dmg is opened and VLC is seen by OS X as an application, Launch Services asks VLC what filetypes to associate it with, and adds that to the database? Then when I try to "open with" a .avi, it sees that .avi is associated with QuickTime, and now VLC too.
    that's right. inside the VLC application bundle there is a file called info.plist which contains among other things the info about which files VLC can handle. that file is consulted by the Launch services once it becomes aware of VLC being present in the system and that info is recorded in the launch services database. That's how it works with all applications. you can view this file if you want. control-click on VLC in finder and select "show package contents". in the new finder window that opens up go to Contens folder and quicklook the file info.plist.
    Is this correct?
    Thanks.

  • How does the system identifies whether we use Psotive or Negative Time Mngt

    Dear All,
    How does the system identifies whether we use Psotive or Negative Time Management.
    Appreciate your early response.
    Regards
    Rajesh

    Hi
    1. In positive time management we record the actual time of the employee working in organization and following are the infotypes we need to maintain in master data,
              1. Organztion Assignement [0001]
              2. Personal Data [0002]
              3. Absence Quota [2006]
              4. Planed working time [0007] with the time management status " if you are using PDC then "2" " Or "1. Time evaluation actual time".
              5. Time Recording Info [0050]
    2. In Negative time management we are only recording the time deviation like "Absence, Illness, Leave" and following are the Infotype we need to maintain in master data,
             0001, 0002,0007 with time management status "0" i.e No time evaluation and 2006.
    Best of Luck
    Swapnil

  • How does the system knows age or seniority is crossed for so and so... EE

    Hi Experts,
    In my project we have configured some Health plans based on ages and seniority,
    Employee can enroll in to the plan when they reach the age or seniority,
    my question is how does the system knows  age or seniority is crossed for so and so... EE, where exactly we do this setups
    Pleae let me know your valuable answers
    Regards
    Sreeni

    hr_entry_date and you can use various
    fm to calculate this, It reads 0019, 0041 or Hdate feature
    3QP8                           Time related calculation function mod.
    HR_AUPBS_SENIORITY             Calculate the whole length of service of employee
    3RP3A                          Leave schem proration modules
    SGPS_LS_SENIORITY_CALCULATION  Function for seniority calculation for Singapore Leave Scheme
    HRDO
    HR_DE_PBS_SENIORITY_PERIODS
    HRFPBS4AV0
    HR_PSF_AV_ANC_INPUT_SENIORITY
    HRF_METADATA_IT
    HRF_READ_SENIORITY_IT

  • How does Goods Issue know which Batches to deallocate from A/R Credit Memo?

    Hi,
    I am creating an addon that runs after a A/R Credit Memo is created.  It creates a Goods Issue, and enters the Item Code and the Quantity from the line items on the Credit Memo into the Goods Issue.
    After it writes the Goods Issue to SAP, I open up the document it created and see that the line items are in there correctly, and that somehow the batches assigned to those line items are also in there.
    There is nothing in the code that does anything with the Batches, but somehow SAP knows which batches to work with.
    I haven't been able to find any info about it.  Can you please help us understand what is happening?  How does SAP know and make assignments to batches in line items in Goods Issues?
    Thank you,
    Mike

    Hi Michael and Gordon,
    Sorry Gordon, I'm quite sure you misunderstood Michael original question. Michael asked how the add-on he created could link corresponding batch number from an A/R Credit Memo document could be selected by Goods Issue document which generated by the add-on, while he actually never wrote a code to select any batches numbers which available in the system.
    Maybe a little bit of illustration:
    1. Item A, qty 10 - (batch A qty 5, batch B qty 3, batch C qty 2)
    2. A/R Credit Memo occurred, return of Item A with 3 qty (batch A qty 1, batch B qty 1, batch D qty 1). Therefore, item A latest position should be (batch A qty 6, batch B qty 4, batch C qty 2, batch D qty 1). This A/R Credit Memo created by add-on.
    3. Goods Issue document triggered by add-on. The problem is, Michael never write any code to select any batch numbers, and somehow the system choose batch number precisely as occurred in number 2 (A/R Credit Memo document), which is (batch A qty 1, batch B qty 1, batch D qty 1). Therefore the stock position for Item A back to as being displayed in number 1.
    I believe this shouldn't be possible at all. Unless, there is a certain mechanism in SAP that automatically choose batch number to used in Goods Issue document using LIFO (Last In First Out), which is, as far as I know never exist in any SAP B1 version. Yes you could automatically choose batch numbers according to available batch, but you could do this when system prompt you when you tried to issue certain document using SAP application itself, not using add-on.
    And of course, you could write a code to choose certain batches based on certain A/R Credit Memo, but still, you need to write a code, you can't do this without a code, selection of batches is compulsory when you tried to add a goods issue document which consist of items that managed using batches.
    In my opinion, I think it is better for you to re-write those codes and relate batches you want to attach with your Goods Issue document based on corresponding A/R Credit Memo. It is much safer, and the error message you encountered won't happen again in the future.
    Best Regards,
    Hendry Wijaya

  • How does the scrollbar know which field it lands on?

    Hi all
    I'm looking at components at the moment. Not how to use them
    but how to create them yourself to increase your workflow.
    When dragging a scroll component on to a dynamic textfield it
    automatically determines which field it land on, and populate the
    targetInstanceName variable in the property inspector.
    How does it do that? I guess it's a jsfl file being run, but
    I can't figure out how to run a jsfl file the moment the user let
    go on the component.
    Thanks in advance,
    Jakob

    Hi Antony,
    There is no need of Sender Agreement and hence sender communication channel. Sender Agreement identifies three things,
    Namespace, Software component version and Outbound Interface. In Idoc communcation there is no need of Sender agreement as we can identify above things without Sender Agreement itself like namespace - Idocs have standard namespace and can be accessed across the sofwatware component versionsn and the idoc type it self specifies the interface name.
    You cannot define a sender IDOC channel in Integration Directory due to fact dat IDOC adapter does not run in J2EE AF but is an 'built in" adapter.
    Thanks,
    Vijay Kumar T.

  • How does warehouse/accounting knows when to follow up on an SO?

    Let say a sales person create 3 SO today for customers.
    How does?
    - the warehouse aware that they need to ship 3 SOs today?
    - accounting aware that they need to create invoice for 3 SOs today?
    Will SBO send a message to each user in warehouse/accounting? Or this sales person must actually call and notify warehouse/accounting that he just created 3 SOs thus they must follow up with it.

    James,
    There are two ways to handle this,  one the warehouse and the accounting users can look at eh Open Items list Report found under Sales A/R > Sales Reports
    and select Sales Orders / Deliveries as per the preceding stages document.
    Another route would be to create an Alert and send it internally to the respective user
    Suda

  • How does this program work on  a Mac OS-X 10.8.5?

    How does Adobe Photoshop Elements and Adobe Premiere work on a MAC OS-X 10.8.5?  Do I need additional software?

    Hi,
    The drivers for your device are available through Apple Software Update.
    Follow the steps below to install and find out how to use it on your OS:
    http://h10025.www1.hp.com/ewfrf/wc/document?docname=c02911238&tmp_task=setupCategory&cc=us&dlc=en&lc...
    Shlomi
    Say thanks by clicking the Kudos thumb up in the post.
    If my post resolve your problem please mark it as an Accepted Solution

  • Does any one know whether or not Safari on the touch will ever get Flash?

    Just interested really, not a problem but it would be nice to be able to use flash with safari on my iPod touch.
    does any one know of any developments coming up?

    Not so fast...
    Despite Adobe's positive-sounding statement yesterday, CEO Shantanu Narayen clarified that he meant Flash on the iPhone would require more than just the iPhone SDK to pull off successfully. Since Flash requires a very close relationship with Safari – something Apple is normally very hesitant to allow – Narayen says it would need to work closely with Apple to develop a satisfactory implementation of Flash for the iPhone, according to CNET.

  • How does this program group and cluster these button values into an array?

    In the attached program, there are 6 buttons in a cluster and 1 individual button. These buttons control a bunch of different relays to control power to different components of a single device. Right now the program works in that I can control the 6 buttons, the LED turns on in the board and the power is being transmitted. What I do not understand is how it is doing this.  I ran the program with the highlight execution on and at the start of the read from array component, if say I pressed button 6 and hit ok, it reads #6, where did these get defined and labled? and if i wanted to add another button/relay how do i do this? If someone could explain step by step how this is grouping the relays on the board into an array and then controling them I would really appreciate it. Thanks.
    Solved!
    Go to Solution.
    Attachments:
    Cluster to Array.vi ‏85 KB

    The #6 your seeing is the number of elements in the array not a value for the array. 
    Now for some deeper explainations.   From the code it appears that exactly 1 of 6 valves may be used and an additional valve may be in one of two possible states.
    When the program is run the cluster of buttons is initiallized to all False.  and we enter the outer while loop where a sequence structure starts.  In the first frame of the sequence we initiallize a shift register to hold the current value of "Buttons." and this loop runs unthrottled (Add a wait for next ms multiple to this loop to prevent using 100% of the CPU!) 
    For each iteration the buttons are read and if a change has occured to any value buttons that were previously True are reset to False to prevent opening more than one valve.
    When the user presses OK or stop- the current "Buttons" value is passed to the next frame.  This frame convertsthe 7 boolean values to a integer where each valve is controlled by a seperate bit of the integer (Isolation is bit 6 and bits 0-5 each control a mixing valve)
    Now I'd strongly recommend reworking the DAQmx calls- it is pointless to initiallize the task each time you want to use it- Create the task in the initialzation case and wait until the user exits to destroy the task.  And well a sequence structures are frowned on- (there are better ways to do this)
    As far as adding a relay- right now the relays are associated to the hardware by their index position in the cluster (element 1 = bit 0 etc....) to add a new valve you would need to decide what bit you would use to drive it and code in that bits' value to write a 0 in that bit.  (hint the 40 constant is realy 0x40 right-click>visable items>show radix )
    Let me know if you need further elaboration
    Jeff

  • How does a G4 iBook with Tiger run with 512 megs ram?

    Hi,
    I am thinking about getting a G4 iBook that will have 512 megs of ram. How well does Tiger run with 512 meg of ram? I know that OSX loves ram. For word processing will I notice much difference if I expand it to the 1 1/2 gigs it will hold?
    Thank you

    My ibook runs ok with tiger, but haven't used it for anything other than internet browsing.
    Ps, I have a mere 256mb RAM.
    Tara

  • How does the app know image folder (non class files) wrapped in jar file?

    Hi,
    I created an jar file, client.jar, which wrap all necessary files, including packaged class files ( in a hierarachy structure), image folder, properties folder, and ext folder (containing other jar files used). When I run the jar file, like
    java -classpath c:\tmp\client.jar -jar client.jar
    the app does not know where the images go and could not get the properties files. Actually the image and properties files are contained in the same file: client.jar. How can I fix this. I don't want to extract the jar file back to several separated folders and then run it.
    Appreciate the help.

    Unfortunately you have to make some changes in your code.. to find the pictures you need to replace:
    ImageIcon pic = new ImageIcon("pic.gif");
    with
    URL url = MyClass.class.getResource("pic.gif");
    ImageIcon pic = new ImageIcon(url);
    where MyClass is the class which needs to load the resource.
    I hope this helped you! /Pingu

Maybe you are looking for

  • Vendor In Pricing

    Hi, I am using a vendor as a Broker at header level of sales order. This vendor i want to be used in pricing table so that proper brokerage can be paid too him. right now i am using standard condition table 363 (plant, vendor material). but system is

  • Acrobat Pro or Std?

    I am not familiar with the functionality of Acrobat Pro and Standard. Can someone help me decide? Here is my criteria. I need to convert large quantities of Windows Word documents into PDF. So I need batch processing capabilities. The Word docs may c

  • 0BP_DEF_ADDRESS_ATTR datasource problems not all data in BW

    Hello! I have a BIG problem with business partner address attribute in BW.... In CRM system I have one million records, however in BW only have 200 000... I have checked the table BUT021 and all is correct... Somebody can help me with this problem, e

  • Will InDesign CC be compatible with InCopy CS6

    Will it be possible to combining InDesign CC and InCopy CS6 in a workgroup?

  • Using a Database for Persistent Storage (JDBC persistence)

    Hi, I was going through the WLS docs for some information on Session Management using JDBC. It says that set up a database table named "wl_servlet_sessions" for JDBC-based persistence. I have done this and it seems to work fine because it stores valu