Udf for exists

I have to concat 14 Idoc text fields into a string at a varying position. Mostly some of the fields are not assigned, a normal concat does not work(no output if one field is missing). I created a workaround with the exists function (graphical) which is about 25 meter long (my colleague imediately started to cry). It works but it is ugly.
Does anybody know how the exists function works. If one of the IDoc fields is missing I do not get <b>any</b> output of my udf whatever I do inside. How can I change this.
Regards, Thomas

Hi Thomas,
You can handle the absence of values in two ways.
1. Using <b>MapWithDefault</b> Standard function.
Field1- MapWithDefault(Default value single space)->
                                       ->Concat/UDF -> TargetField
    Field2- MapWithDefault(Default value single space)->
2. In UDF check for SUPPRESS value like this:
public String UDF_Name(String StrVal1,String StrVal2,Container container){
          if((!StrVal1.equals(ResultList.SUPPRESS)) && (!StrVal1.equals(ResultList.SUPPRESS))  ){
              //concat...
Hope this helps.
Regards,
Ananth

Similar Messages

  • UDF for file to IDoc.

    Hi,
    I could like to create an UDF for file to IDoc secenario.
    Srouce:
    MTCashPosting_
    Header
    CashPosting
    PubDiv
    DocType
    DocDate
    PostDate
    RefDocNo
    HeaderTxt
    Customer
    Value
    Currency
    ExchangeRate
    Ledger
    Item
    Material
    TaxValue
    VAtValue
    Trailer
    Traget: (IDOC Type: FIDCCP02 Message Type: FIDCC2)
    FIDCCP02
    IDoc (Under FIDCCP02)
    Begin (Under IDoc)
    EDIDC40_:DISABLED
    E1FIKPF (Under IDoc)
    E1FISEG (Under E1FIKPF)
    Segment
    buzei
    bschl
    shkzg
    mwskz
    dmbtr
    hkont
    matnr
    "The secenario is the 'Value,TaxVAlue & VatValue' should be handled by replicating E1FISEG like (HAve used External definition for IDoc)"
    Value -> Line item 1
    IF TaxValue exists->Line Item 2
    IF VatValue exists-> Line item 3
    Finally Line item 4 for cerdit.All above are debit
    Value____________UDF______________E1FISEG
    TaxValue_________|
    VatValue_________|
    Value____________UDF______________DMBTR
    TaxValue_________|
    VatValue_________|
    How should I map?? Inputs plzzzzz

    Hi
    I am not sure whether my understanding is correct.
    As per my understanding
    You need to duplicate E1F1SEG segment 4 times as there are 4 conditions
    and those nodes need to be enabled or suppressed based on your condition .
    Regards
    sandeep

  • Issue with Jar files in UDF for RFC LookUp

    Hi,
    I am writing a UDF for RFC LookUp.
    In the import statement of UDF, I used the JAR File : com.sap.aii.mapping.lookup.*;
    The code inside the UDF uses LookupService.getChannel.
    When I test the UDF, It shows an error ( ^ ) at LookupService.getChannel.
    Could you please help me in understanding why Am I getting this error at all?
    Thanks In Advance.
    Rohan

    Hi,
    I have used 'com.sap.aii.mapping.lookup.LookupService', and I got the following message error:
    G:/usr/sap/XD1/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map1c5a7dc23dcf11dda79f001e4f342f87/source/com/sap/xi/tf/_MM_MT_PlannedOrder_to_ZLOIPLO_.java:3: package aii_map_api does not exist import com.sap.aii.mappingtool.tf3.;import com.sap.aii.mappingtool.tf3.rt.;import java.util.;import java.io.; import java.lang.reflect.;import aii_map_api.jar;import com.sap.aii.mapping.lookup.LookupService;*
    ^
    Also in the above message there are 3 packages that I have not used at all and still I see them in the message.
    Any reason?
    Rohan.

  • UDF for monitoring Repair cost of fixed assets

    Hi All,
    Can you guide me how to populate a UDF at Invoice level with information from Fixed Assets (Add-on) Master? I am trying to monitor repair costs for existing fixed assets. My client wants to see how much repair cost has been incurred against a particular fixed asset.
    Any suggestions?

    Hi Asim,
    If you can query Fixed Assets Master directly, yon could create UDF just like other UDF under Marketing Documents Title.  A FMS then can be used to get the data from the related table.
    Thanks,
    Gordon

  • For existing data in BI, client need to take a call to park the same from s

    hi,
    friends,
    For existing data in BI, client need to take a call to park the same from safety point view by copying the existing ODS  
    is it possible?if it is possible give me details.
    thanks&regurds
    sivaji

    hi,
    well when you copy an ODS only the structure is copied. to load the data you might need to create transformation and DTp to load data in the new ODS.
    You need to load data manually. Copying the ODS will only copy the structure.
    Regds,
    Shashank

  • How to add a new data element for existing table filed(Primary key field)

    Hi Experts,
    How to add a new data element for existing table field(Primary key field)
    For this filed ther is no foreign key relation ships and even check table.
    while activating table it is giving message like below.
    can you help any one to solve this and wil steps to add new dataelement for existing primary key filed of a table.
    Check table (NAMING SPACE/TABLE NAME(EX:/TC/VENDOR)) (username/19.02.10/03:29)           
    Primary key change not permitted for value table /TC/VENDOR
    Check on table  /TC/VENDOR resulted in errors              
    Thanks
    Ravi

    Hi,
    Easiest way is to download the table eg into an Excel table (if possible) or text table. Drop the table from the database. Build your table with the new key field. Build the database table again and fill it.
    You can do it also over the database into a new table. Drop the old one. Build the enhanced one and fill it. Afterwards drop your (temporary) table.
    Maybe there are other ways, but this works.
    Success,
    Rob

  • Create UDF for table not in the List of tables

    Hi all,
    I know that my question maybe easy or been asked before, but I couldn't find the answer.
    To create a UDF in SAP B1 version 9.0 you should go Tools -> Customization Tools -> User-Defined Fields - Management...
    which is ok and working perfect. but my question is:
    If I want to create UDF for a table not in the list of tables there what should I do? I need to create 2 UDFs for table OMRC [Manufacturers], and can't find it in master data tables.
    anyone had this issue before?
    EDIT  : Is it good to add the field by using sql server? I know it's possible, but will it be visible in SAP
    thank you
    Message was edited by: Samira Haroun

    Hi Samira,
    There is noit a simple link for this, I advise you to study the documentation for TB1300 SBO Development Certification.
    Ypu should also have knowledge of .net, and C# or VB, because you have to make a small program/addon to add the fields
    Kind regards
    Ad Kerremans

  • How to activate the new fields on material master(MM01/MM02/MM03) for existing Materials

    Hi,
    We have a requirement to add  some custom fields as a new tab in additional data option(Descriptions, Unit of measure, etc.) in Basic data of Material master (MM01/MM02/MM03). I have successfully added and these custom fields and they are not part of standard(MARA, MARC) but a custom table and the updates are also done in custom table.
    For new materials, I can see the new tab in additional data screens of basic data view and I could successfully create/change/display using MM01/MM02/MM03. However I cannot see the new tab/fields for existing materials in the system in all 3 tcodes (MM01/MM02/MM03). This is not a main view in material master so that I can extend it by MM01.
    Is there any setting or mass generation program I have top perform so that I can see and maintain these new fields for existing materials. Appreciate any leads or help on this.
    Thanks,
    Harry

    Hello Harry,
    Goto t.code SPRO ---> Display IMG --->  Logistics - General --> Material master --> Configuring the material master --> Create program for customized screens
    Use the above path and create the screen and assign it to the sequence using the below link as reference.
    **************** - Tips - Implementing screen exits for MM01/MM02/MM03
    Regards,
    Thanga

  • Create new Equipment (t-code IE01) for existing asset

    HI Expert,
    I have an enquiry on equipment creation via t-code IE01 for existing asset. There are synchronization between Asset Master and Equipment Master which mean both sides will be updated during the creation and changes of master data.
    I have create new equipment master via t-code IE01 and has tagged to the existing asset. However after save the creation, new inventory number was generated to the asset master and had overwrite the existing inventory no. Is it because of the synchronization or it is a system standard?
    Your answer is highly appreciate.
    TQ.

    My configuration is "Direct Synchronization After Saving" for both master data (asset master & equipment master).
    However, I did not assign the Inventory No Field in asset master as a synchronization with equipment master, so how come system can re-generate new inventory no and overwrite the existing inventory no in the asset master? and what the solution if we do not want system re-generate new inventory no in asset master since it has been effected on the printing barcode sticker for the asset.
    Really appreciate your answer.
    TQ.

  • UDF For Retrieving the Tax Code based on PO

    Hi all,
    Mine is a file to Idoc scenario.
    I wrote a FM to retrieve the Tax Code based on PO .
    Created the udf which directly gets the Taxcode from the r/3 with out importing in to the imported objects,is this correct i never tried this before.
    Find the UDF for the Same.
    final String    CHANNEL_NAME = "GeneratedReceiverChannel_RFC",
         VALNOTFOUND = "VALUE_NOT_FOUND",
         SAPRFCNS = "urn:sap-com:document:sap:rfc:functions",
         TAG_FM = "Z_P_INT012_RFC_LOOKUP",
         TAG_TAX_CODE = "T_TAX_CODE",
         TAG_TAX_CODE_P = "TAX_CODE";
    AbstractTrace trace = container.getTrace();
              DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
              DocumentBuilder builder = null;
              factory.setNamespaceAware(false);
              factory.setValidating(false);
              try {
                   builder = factory.newDocumentBuilder();
              } catch (Exception e) {
                   trace.addWarning("Error creating DocumentBuilder - " + e.getMessage());
              Document docReq = null;
              try {
                   // Building up RFC Request Document
                   docReq = builder.newDocument();
                   Node root = docReq.appendChild(docReq.createElementNS(SAPRFCNS, TAG_FM));
                   Node nodeTbOpt = root.appendChild(docReq.createElement(TAG_TAX_CODE));
                   for (int i = 0; i < pernr.length; i++) {
                        Node nodeTbOptItem = nodeTbOpt.appendChild(docReq.createElement("item"));
                        nodeTbOptItem.appendChild(docReq.createElement(TAG_TAX_CODE_P)).appendChild(docReq.createTextNode(TAX_CODE<i>));
              } catch (Exception e) {
                   trace.addWarning("Error while building RFC Request  - " + e);
              trace.addInfo("RFC Request XML: " + docReq.toString());
                                                    //trace.addWarning("RFC Request XML: " + docReq.toString());
              // Lookup
              Payload load = null;
              try {
                   Channel channel = LookupService.getChannel(receiver[0], CHANNEL_NAME);
                   RfcAccessor accessor = LookupService.getRfcAccessor(channel);
                   InputStream is = new ByteArrayInputStream(docReq.toString().getBytes());
                   XmlPayload payload = LookupService.getXmlPayload(is);
                   load = accessor.call(payload);
              } catch (LookupException e) {
                   trace.addWarning("Error during lookup - " + e);
              // Parsing RFC Response Document
              Document docRsp = null;
              try {
                   docRsp = builder.parse(load.getContent());
              } catch (Exception e) {
                   trace.addWarning("Error when parsing RFC Response - " + e.getMessage());
              trace.addInfo("RFC Response XML: " + docRsp.toString());
                                                    //trace.addWarning("RFC Response XML: " + docRsp.toString());
              try {
                   NodeList res = docRsp.getElementsByTagName("item");
                   for(int i=0;i<res.getLength();i++){
                        NodeList itemNodes = res.item(i).getChildNodes();
                        Map itemMap = new HashMap();
                        for(int j=0;j<itemNodes.getLength();j++){
                             itemMap.put(itemNodes.item(j).getNodeName(), itemNodes.item(j).getFirstChild().getNodeValue());
                        rows.add(itemMap);
                                                            catch (Exception e) {
                   trace.addWarning("Result value not found in DOM - " + e);
                   result.addValue("true");
    Error:
    16:24:08 Start of test
    Source code has syntax error:  /usr/sap/XD1/DVEBMGS30/j2ee/cluster/server0/./temp/classpath_resolver/Map283041f0edf311dd960b0003bacd2461/source/com/sap/xi/tf/_MM_INT012_INVOICE_DET_.java:598: 'class' or 'interface' expected public void TaxValues$(String[] a,String[] b,ResultList result,Container container){ ^ /usr/sap/XD1/DVEBMGS30/j2ee/cluster/server0/./temp/classpath_resolver/Map283041f0edf311dd960b0003bacd2461/source/com/sap/xi/tf/_MM_INT012_INVOICE_DET_.java:618: 'class' or 'interface' expected } ^ /usr/sap/XD1/DVEBMGS30/j2ee/cluster/server0/./temp/classpath_resolver/Map283041f0edf311dd960b0003bacd2461/source/com/sap/xi/tf/_MM_INT012_INVOICE_DET_.java:619: 'class' or 'interface' expected ^ 3 errors  Source code has syntax error:  /usr/sap/XD1/DVEBMGS30/j2ee/cluster/server0/./temp/classpath_resolver/Map283041f0edf311dd960b0003bacd2461/source/com/sap/xi/tf/_MM_INT012_INVOICE_DET_.java:598: 'class' or 'interface' expected public void TaxValues$(String[] a,String[] b,ResultList result,Container container){ ^ /usr/sap/XD1/DVEBMGS30/j2ee/cluster/server0/./temp/classpath_resolver/Map283041f0edf311dd960b0003bacd2461/source/com/sap/xi/tf/_MM_INT012_INVOICE_DET_.java:618: 'class' or 'interface' expected } ^ /usr/sap/XD1/DVEBMGS30/j2ee/cluster/server0/./temp/classpath_resolver/Map283041f0edf311dd960b0003bacd2461/source/com/sap/xi/tf/_MM_INT012_INVOICE_DET_.java:619: 'class' or 'interface' expected ^ 3 errors
    16:24:11 End of test.

    Hi Potharaju,
    Why don't you try this, that really works:
    If you are using PI 7.1:
    http://help.sap.com/saphelp_nwpi71/helpdata/en/33/1ec6ced273493a993a80c2301c03da/frameset.htm
    If you are using XI 3.0, PI 7.0
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/a03e7b02-eea4-2910-089f-8214c6d1b439
    Try with these.
    Regards,
    Juan

  • Have Adobe Standard CS 5 (Student), and would like to upgrade to Creative Cloud (Non-Student) - won't accept my serial number for special pricing for existing users

    I currently use Adobe Standard CS 5. It was bought with the Education discount. I would like to upgrade to Creative Cloud and see that they have special pricing for existing customers that use past versions of Creative Suite. I am no longer in Education, so I will have to buy a full version. This is fine, but it won't accept my serial number for the discounted pricing. Is there something else I should be doing?

    Hi there
    Please contact our Sales team who will assist with your order - 800-585-0774
    Thanks
    Bev

  • Best practice for existing target table

    We want to develop mappings for existing target tables.
    1. The tables are imported from the datadictionary
    2. The tables are used in the mappings
    Is it a good idea to set deploy to no for these tables, to prevent them from beeing used by the deplomentmanager (default action:create)?
    Thanks your for a good practice
    Stp
    Message was edited by:
    user444776
    Message was edited by:
    user444776

    Hi,
    Yes, you are right. for the tables which already exist in the database schema the deployment actions should be "None". Unless you planned and made any changes to the table structures.
    Cheers
    Mahesh

  • Purchase Order Row UDF for Received Qty

    Hi experts,
    Can someone please recommend a way to create a row UDF for purchase orders to show the qty received? We cannot use a simple calculation like Qty-Open Qty because if the row is closed manually, the open qty becomes zero. Another problem is how to prompt the PO to update this value if additional GR PO's or AP Invoices are created. Thanks.

    I should explain the circumstances more clearly. There is no problem with the standard GR PO or AP invoice receiving method. What I want is a reference field on the original PO showing the total qty received to date. For example: total of 1,000 pcs ordered -> 900 pcs received against several GR PO's -> want to see that 900 has been received back on the PO. Then let's say we want to close the PO line 100 pcs short.
    I can think of 2 ways to go about this:
    Method 1: Change the ordered qty from 1,000 to 900 -> row is closed, but lose the reference of the original order qty being 1,000.
    Method 2: Close row manually and maintain the original order qty as reference, but lose b/o qty and it is difficult to tell how many pcs where received/closed short.
    Is there another way to keep all the reference information?

  • How to activate split valuation for existing material having stock open PO,

    Hello,          
    How to activate split valuation for existing material in plant having stock and open PR,PO and Production order.
    Regards

    Hi
    It is not possible to activate in such case, u should not have any stock.
    With regards
    Pavan

  • Custom program for availability check and update for existing sale order at Item level(VA02)

    Hi,
    I came to know Bapi_Saleorder_Simulate can be used for availability check and update an existing sale order.but there is no sample program explaining the process.I have tried this by passing parameters ORDER_HEADER_IN , ORDER_ITEMS_IN  ,ORDER_PARTNERS and ORDER_SCHEDULE_EX(for getting details),also i have assigned the sale document number ,custom document type(ZSO) in ORDER_HEADER_IN . while executing the BAPI I am getting the error external number range is not assigned for the document type ZSO . I am confused on seeing this error. It is possible to do availability check for existing sale order using this BAPI. Please explain how to achieve this.It will be really helpful if it is expalained with an example.   
    Regards,
    Shanmuga

    Hello, I think you may have been misinformed about this BAPI updating a sales order at item level. As far as I understand it this BAPI can be used to simulate the creation of a sales order which obviously would include and ATP check. This is why it is giving the error because it is simulating creation but you are entering a value in a field that should be automatically generated (i.e. the sales order number). For change the sales order at item level have you looked at BAPI_SALESORDER_CHANGE? I pretty sure this BAPI both updates sales order (header or item level) and can do an ATP first.
    Points are always welcome if you feel an answer has been helpful.

Maybe you are looking for

  • "Permission denied" while accessing Canon 550D with libgphoto2

    I have followed the Wiki for access problems but I just can't get it to work, the camera is seen but I cannot transfer anything from it, I'm getting "libusb couldn't open USB device /dev/bus/usb/002/003: Permission denied. libusb requires write acces

  • Export collection as jpeg produces wrong format for Clikpic website

    Lightroom 1.3.1, high spec pc, Windows XP, ACD,etc. I have a website with "Clikpic". Before starting with L/R I had a Photoshop action to save for web at 600x600@72dpi etc, images from which then upload fine into Clikpik. I thought I would use the L/

  • [long] Permission problem in sqlplus

    I have posted about this before - to summarize: 1. I have installed Oracle without problems 2. I can start the database and listern without problems 3. I can log in with sqlplus when I am the oracle dba user - but when I try to log in from sqlplus as

  • Hi Experts, need an example for abap unit test(ABAP OO)?

    Hi Experts, I want to do abap unit test for the developed programs, could anyone please give me an example program of development(a simple is ok, just use it to test)? and an abap unit test example for the program, what I want is to use object orient

  • Missing start arrow in video/movie

    Hallo, in my iBook I would like to use videos opening up in full screen mode, when touched. When I select "fullscreen mode" in the inspector, the little arrow in the middle of start photo of the movie disappears! How can I prevent this? I would like