How to avoid claim - release step in Human Workflow

Hi All,
I have a Human Workflow in which i need to assign a task to a group of people. However we want to skip the step of claim and release. Directly we need to have the approve or reject options in the task list for the user. Is there some way that can be accomplished?

In the corresponding .jsp files (TaskList.jsp,TaskDetails.jsp) in the $BPEL_HOME/samples/hw/worklistapp/public_html you need to change the following:
In the call to method HTMLFormatter.displayTaskActionsDropdown, change the last parameter to "HTMLFormatter.CUSTOM_ACTION_OPTIONS"
Then you need to deploy custom worklist application, once you have deployed the custom application you can access it through the URL -
http://localhost:port/integration/customapp/
In this custom application you will see "APPROVE"/"REJECT" options in corresponding pages.
Refer http://download.oracle.com/docs/cd/B31017_01/integrate.1013/b28981/worklist.htm#BHACDDFJ for more details.
Edited by: Krishnaraja Nelli on Dec 8, 2008 5:13 PM
Edited by: Krishnaraja Nelli on Dec 8, 2008 5:16 PM

Similar Messages

  • How to avoid po release strategy replicating in RFQ

    Dear Sapiens,
    I am aware  as we are using same class for PO RFQ and Contract the release strategy will repliacte in rest,
    but I dont want PO release strategy to get repliacted in RFQ,because I dont have realease for RFQ
    how to avoid po release strategy replicating in RFQ?
    Regards
    Kantha

    Hi,
    Yes they are same unless you differentiate by using
    1> Purchasing Document Category i.e CEKKO -BSTYP
    A.....     Request for Quotation
    F......Purchase Order
    K......Contract
    L......Scheduling Agreement
    So if you just create a characteristics for CEKKO-BSTYP then maintain its values only for F so it will not be applied to RFQ

  • How to use LOOP(Until) step in a Workflow

    Hi,
    How to use LOOP(Until) step in a Workflow?
    What are the steps involved in using the step LOOP(Until).

    Hmmm... using it is just like using a LOOP UNTIL statement in any programming language. You get at least one loop iteration, as opposed to a WHILE loop which may give you zero iterations.
    You simply insert a node of this type in the workflow, and magically there will be a loop inside which you can insert the steps you want to execute in the loop, and by double-clicking at the end node of the loop you can enter the condition for exiting.
    What exactly is it you are having trouble understanding about the use of it?

  • Auto Claim Tasks in BPM Human Workflow

    All,
    I have a requirement with a customer to auto claim tasks. When a user selects a task from their task list (tasks by default are assigned to a role), it should be auto claimed. This is to prevent other users from working the task at the same time.
    I appreciate I could educate / train the users to have to press the Claim button first, however I was investigating the feasibility of doing an Auto claim to reduce the need for the users to do this.
    Does anyone know if this is supported Out of the box with BPM Suite? I have looked around the documentation and have seem no ways of doing this. An alternative would be to use the BPM API's however I ideally would prefer to not need to write custom logic for this.
    Your thoughts and experiences would be appreciated
    Regards
    Dave

    Hi Dave,
    The default when you create a human task is that it is set to auto claim. To see this, open one of your human tasks -> click "Assignment" -> click the pencil icon in the upper right corner. There you should see the "Enable Auto Claim" checkbox already checked by default.
    Take a look at this link for more on auto claim: Re: Is it necessary to Claim task? Seems to work without doing so
    Hope this helps,
    Dan

  • How to route the Assignes dynamically in human workflow

    Hi all,
    I need to generate the stage/Level dynamically for a task.kindly guide me to achieve the below scenario.
    Scenario:
    I will get the approval names from the Payload like E.g. ram, Vijay/ramesh/Vinay, kumar, Thai/hema, vimala
    If the Payload is like this I need to create four stages or four levels as serial (/ is used as the separator for level/stage)
    1 level/stage -->ram (or) Vijay must approve
    2 level/stage -->ramesh must approve
    3 level/stage -->Vinay (or) Kumar (or) Thai must approve
    4 level/stage -->hema (or) vimala must approve
    Thanks in advance
    C.Karukkuvel

    Here is how we did it, hope it helps
    <defvar name='locCalendar'>
    <new class='java.util.GregorianCalendar'/>
    </defvar>
    <defvar name='dateFormat'>
    <new class='java.text.SimpleDateFormat'>
              <s>MM/dd/yyyy</s>
         </new>
    </defvar>
    <defvar name='formatedDate'>
         <invoke name='getTime'>
    <ref>locCalendar</ref>
    </invoke>
    </defvar>
    <invoke name='format'>
    <ref>dateFormat</ref>
    <ref>formatedDate</ref>
    </invoke>

  • How to create a Language Branch using custom workflow?

    Hi,
    I’ve a requirement where I need to create a workflow process which will create a Language branch.  i.e I wanted to achieve the functionality using custom workflow as given in the docs: https://dev.day.com/docs/en/cq/current/administering/multi_site_manager.html#Managing the Translation of your Language Branches 
    As per the OOTB functionality,
    1.     If the target page is not exist in the Language branch, it will copy the reference page to target path.
    2.     If the target page is already exists, it will not create a copy of the reference.           
    After the translation, if we make any changes in the reference page and activate the reference, then we have a button called 'Show side by Side' under Translation in the side kick which shows differences between reference page and translated page.
    Example:
    So, I would like know how we can achieve this in my custom workflow process. In my workflow process, I’m checking whether the page is existed in the target path or not. If not exist, I used page copy.
    Eg: Page page = newPage.copy(originalPage,targetPath+"/"+originalPageName,null,true,true );
    When I use above api, it just copies the page and it will not maintain any relation with reference page.
    Any pointers would be more helpful.
    Thanks
    Siva

    Hi,
    I have a similar request to export the texts from one language and after the translation to import them to the new language, did you find any solution? My question is how can I add some steps into my workflow to validate the imported data -and if the user validate the texts then proceed with next step(in my case I import the text from a file and generate a form with values). I read the documentation from Adobe but I didn't find anything related to how we can add a workflow to a dynamically generated from(I don't use the CQ form component).
    Can anybody help me with this?
    Thx, Lorand

  • KMC Migration Tool stopped. How to restart avoiding the finished steps?

    Hi,
    I'm using KMC Migration Tool for upgrading EP 6.0 SP 2 (6.20) to EP NW04 SPS15 (6.40). We have experienced some network problems, and the process of DB migration has stopped between the end of the migration of task AP - completed suscesfully (the last step of the Migration the DataBase, many hours!!) - and the begining of the synchronization the fsdb Repositories (only a few minutes). When I tried to restart the process of DB migration, the KMC Migration tool tried restarting all the migration tasks from the begining of the DB Migration.
    How to restart avoiding the finished steps? How can I avoid to repeat the migration of the DB from the begining, especially if it has executed suscesfully? Can I synchronize the FSDB repositories manually at the end of the EP migration? How can I do it?
    If I had to restart the process, is it necessary to restore the target DB, or the process does not insert records from the last execution?
    Many thanks for your help,
    Best regards,

    Hi,
    CM repositories in FSDB mode can have a manual backup before configuring the local root. The XML file provides the description of behaviors and persistence levels for the file system. To have a manual backup the auto sync has to be deactivated or else there will  be a  huge meta data loss.
    what i feel is like you have to restore the DB before manual bacup(.if the Auto sync is activated). However, i dont  think so  that you can resume the migration.
    Regards,
    Anand

  • LD_ASSUME_KERNEL does not work in recent distros. How to avoid?

    LD_ASSUME_KERNEL=2.4.XX does not work in all recent distros.
    $ export LD_ASSUME_KERNEL=2.4.20
    $ ls
    ls: error while loading shared libraries: librt.so.1: cannot open shared object
    EBS contains very old cmponents like MWA wich not compiled without this setting. How to avoid errors?

    You can unset LD_ASSUME_KERNEL and EBS 11i (11.5.9 and 11.5.10) will work fine on 2.6.16 kernels (SLES-10 and RH 5.0).
    The following instructions should get you going:
    1) Setup the environment as you would for running Applications on RH 4 or SLES9
    I.E. follow Oracle Applications Installation Update Notes, Release 11i (11.5.10.2)
    http://metalink.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=316806.1
    2) Remove any LD_ASSUME_KERNEL references in O/S /etc/profile.d files
    3) Comment out LD_ASSUME_KERNEL entries in $ORACLE_HOME/appsutil/bin/adgetlnxver.sh and $AD_TOP/bin/adgetlnxver.sh
    if [ ${setflag}x = "x" -a $os = "Suse" ]; then
    # LD_ASSUME_KERNEL="2.4.21"
    # export LD_ASSUME_KERNEL
         os="Suse"
    fi
    if [ ${setflag}x = "x" -a $os = "RH" ]; then
    # LD_ASSUME_KERNEL="2.4.19"
    # export LD_ASSUME_KERNEL
         os = "RH"
    fi
    If doing a rapid install, the database startup will fail and rapidwiz will prompt to ignore or retry. At this point, edit $ORACLE_HOME/appsutil/bin/adgetlnxver.sh as shown above and click on retry. It will then run to the autoconfig step at the end and error out. Just hit cancel, edit $AD_TOP/bin/adgetlnxver.sh and run autoconfig.
    On Suse, one needs compat-gdbm for libgdbm.so.2
    rpm -Uhv compat-gdbm-1.8.0-7.i586.rpm
    Preparing... ########################################### [100%]
    1:compat-gdbm ########################################### [100%]
    Also in /usr/lib run ln -s libdb.so.2 libdb.so.3
    Ref:
    Note:300807.1 for Suse
    create symbolic link called libdb.so.2 pointing to libdb.so.3, as follows:
    $ cd /usr/lib
    $ ln -s libdb.so.3 libdb.so.2 (or install db1-1.85-85.1 which does the same)
    Note:294043.1 for Red Hat
    As per an internal Bug 4045349, this is an issue with O/S side installation of compat-db rpm.
    libdb.so.3 gets installed when compat-db rpm is installed.
    - The O/S installation CD would contain compat-db
    e.g compat-db-4.1.25-6.i386.rpm ( may change as per your version ).
    - Manually install the compat-db rpm
    e..g "rpm -ivh compat-db-4.1.25-6.i386.rpm"
    OR
    Note:345172.1
    A library is missing: libdb.so.2 is from gnome-libs-1.4.1.2.90-34.1.i386.
    This error also occurs in SLES9, same cause, slightly different resolution. SLES9 comes with libdb.so.3 and libdb.so.4 but not libdb.so.2 - need to install db1-1.85-85.1 to get libdb.so.2.
    4) In order to relink cplex library executables (MSC, MSO, MSR, MST, WIP, etc), edit $AD_TOP/bin/adrelinknew.sh and add the following LD option (-Wl,--noinhibit-exec) in the LINUX section:
    LINUX)
    LDFLAGS='-s -L$(ORACLE_HOME)/lib -L$(ORACLE_HOME)/lib/stubs -ldl'
    DEBUG_LDFLAGS='-g -L$(ORACLE_HOME)/lib -L$(ORACLE_HOME)/lib/stubs -ldl'
    exe_line='ELF .*executable'
    SHRLIB_LD='gcc'
    LD='gcc'
    SHRLIB_LDFLAGS='-L$(ORACLE_HOME)/lib -L$(ORACLE_HOME)/lib/stubs -shared'
    if test -f "/etc/redhat-release"; then
         CPP_LIBS='/usr/lib/libstdc++-2-libc6.1-1-2.9.0.so'
    elif test -f "/etc/SuSE-release"; then
         CPP_LIBS='/usr/lib/libstdc++.so.2.9'
    else
    CPP_LIBS=''
    fi
    CPP='g++'
    CPP_LDFLAGS='-s -L$(ORACLE_HOME)/lib -L$(ORACLE_HOME)/lib/stubs
    set CPP_LDFLAGS='-s -L$(ORACLE_HOME)/lib -L$(ORACLE_HOME)/lib/stubs
    to CPP_LDFLAGS='-s -L$(ORACLE_HOME)/lib -L$(ORACLE_HOME)/lib/stubs -Wl,--noinhibit-exec'
    After this chance, you can apply any MRP, ASCP patch and all executables will relink correctly. You can also use adadmin to relink all executables and it completes without error.
    5) Discoverer 4.1.38.08 Follow Metalink Note 280598.1 Discoverer 4i On Linux: Required Patch and Configuration for Discoverer Server Stability to use JDK 1.3.1 and oadj. I updated the autoconfig template files with this change after applying 3895177. Discoverer viewer and plus standard BIS reports all open correctly on SLES-10

  • BUS2012 Release Step Event triggered twice

    Hi Guys,
      When a PO is created the BO BUS2012 Release Step event is triggered twice.
    I am using a condition for my workflow based on the release code.
    What could be the problem.Kindly Clarify..
    Rgds,

    Hi,
      Actually I think the problem is with my Start Condition. I have given a start condition(SWB_COND) in my workflow is follows.
    Release code = A1 or Release code = A3.
    When i check the event log two times event is triggered with an exception and with the following information.
    1.Start condition returns 'FALSE' for object [BO,BUS2012,4500000131]
    2<b>.Operator 'EQ': The value of the left operand cannot be determined.</b>
    I think the second one is the problem. Any idea how to avoid it..
    Rgds,

  • How to avoid version information in http response

    Hi,
    We have a SAP java web application in webdynpro framework developed using SAP NetWeaver.
    If I right click on broswer and see View Source of the page, it is displaying information related to Development components, java version, SAP version etc..
    I am very new to SAP and would like to know how to avoid the information.
    I have already tried setting useServerHeader to false and DevelopmentMode to False in SAP J2EE engine.
    Below is the information displayed in the view source.
    This page was created by SAP NetWeaver. All rights reserved.
    Web Dynpro client:
    HTML Client
    Web Dynpro client capabilities:
    User agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E), client type: msie7, client type profile: ie6, ActiveX: enabled, Cookies: enabled, Frames: enabled, Java applets: enabled, JavaScript: enabled, Tables: enabled, VB Script: enabled
    Accessibility mode: false
    Web Dynpro runtime:
    Vendor: SAP, build ID: 7.0026.20120524121557.0000 (release=NW04S_26_REL, buildtime=2012-05-24:14:38:29[GMT+00:00], changelist=141071, host=VMW4330.wdf.sap.corp), build date: Fri Nov 16 03:56:13 CET 2012
    Web Dynpro code generators of DC
    SapDictionaryGenerationCore: 7.0021.20091119120521.0000 (release=NW04S_21_REL, buildtime=2009-12-11:15:55:08[UTC], changelist=76328, host=PWDFM114.wdf.sap.corp)
    J2EE Engine:
    7.00 PatchLevel 129925.450
    Java VM:
    SAP Java Server VM, version: 4.1.024 21.1-b02, vendor: SAP AG
    Operating system:
    Linux, version: 2.6.32-131.17.1.el6.x86_64, architecture: amd64
    Hope I explained the issue and thank you so much in advance..

    Or
    Have a look and these query on WD and portal
    refer; Disabling the Right click functionality in the Detailed Navigation?
    Disable WD ABAP default context menu
    Remove / Hide standard right click menu in Web Dynpro ABAP application
    Regd Right click functionality in portal

  • How to setup a release strategy for store generated purchase order

    Hi there,
    Does anybody know how to setup a release strategy for store/plant generated purchase order? I have a request from our client, but I never cross this before. Please help and let me know the step with every single detail.
    Greatly thank for your help.
    Kind Regards,
    2tea

    Please go thru the below Release Procedure and check whether you have maintained all the settings properly.
    PO RELEASE STRATEGY
    The release code is a two-character ID allowing a person to release (clear, or approve) a requisition or an external purchasing document. The release codes is basically controlled via a system of authorizations (authorization object M_EINK_FRG).
    Use SE12, structure CEKKO to check all the fields available for controlling the Purchase Order.
    e.g. If the total value for the Purchase Order exceeds 10,000, release strategy 01 is assigned to the Purchase Order. There is only one characteristic created in this example. For controlling the Purchase Order type, create characteristic for CEKKO-BSTYP and the value NB.
    CT04 - Create Characteristic e.g. NETVALUE
    Click Additional data Table name CEKKO Field name GNETW and press enter
    (for currency dependent field, you are prompt to enter the currency which the system then converts the currency of the Purchasing document into this currency)
    In the Basic data (X refers to tick),
    X Mutliple values
    X Interval values
    In the Value data, in the Char. value column, type >10000 and press enter
    Save your data
    CL02 - Class
    Class - Create REL_PUR
    Class type - 032
    Click Create
    Description - Release Procedure for Purchase Order
    In the Same Classification section, click Check with error
    In the Char. (characteristic) tab, type NETVALUE to assign your characteristics to the class
    OMGS - Define Release Procedure for Purchase Order Type
    Release Group - New entries
    Rel.group Rel. Object Class Description
    02 REL_PUR Rel. Strategy for PO
    Release codes - New entries
    Grp Code
    02 01
    Release indicators
    Release indicators Release Description
    0 Blocked
    1 X Release
    Release Strategy
    Release group 02
    Rel.strategy 01
    Release codes 01
    Release status 01
    Classification Choose your check values
    OMGSCK - Check Release Strategies
    (make sure there are no error messages)
    Once the Purchase Order is not release, buyers will not be able to print the Purchase Order.
    Goods Receipts will be shown with Message no. ME 390 - Purchasing document XXXXXXX not yet released.
    In 4.6c, Purchase Order with Release Strategy have a tabs at the end of the Header. This allowed the buyers to check the release status of the Purchase Order.
    The person with the release authorization have to use ME28 to release the Purchase Order.
    Regards,
    Ashok

  • How to avoid database logon dialog on every action of refreshing reports

    I am using Crystal reports 208 SP2 and has a database connection to oracle database. Connection is esablished and report retrieves desired data, The problem is when ever i open this report ( which has this connection set) and do a refresh,  the report the LogOn dialog pops up.
    How to avoid or save this log on info such that it does not pops up the LogOn dialog when i open the report and do a refresh(F5).?

    Hi Don,
    Thanks for the reply. To try  your suggested approach, i need some clarifications .
    _Problem summary:for refrence, _
    I am following the steps mentioned below to establish a database connection, and fetch the data.
    1) I am using Oracle drivers for configuring the ODBC data source. As part of configuration i will specify the Oracle server name
    2) In crystal reports, Using "Database" menu, i open "Database Expert" dialog and "Make New connection" by specifing the data source mentioned in step 1). During this process, (ODBC)logon information will be filled in. The user ID and password used has all the rights to access the tables in the database. Logon will be successful and connection is established.
    3) Further i use the database table from the "Database Expert" on to the report and refresh(F5) to fetch the data.
    After step 3, I close the report  and reopen it. Now trying to refresh the database logon dialog pops up. I need to avoid this pop up
    Requesting Clarification:;
    1) You have specified "When you connect you have the option to use Trusted Authentication, check this option on". Where is this option. Is it in the crystal reports or is it available during data source configuration. Kindly specify.
    2) Here "Enterprise logon info that has been configured on the Oracle server." implies the oracle database login information right? If yes, this login details are available and i am using this logon information(i.e. UseriD and Password) during database connection.
    If No, Is "Enterprise logon info " is something which should be specifically enabled by DBA in oracle11g configuraion.
    Kindly suggest.
    Edited by: R Guru on Oct 17, 2009 7:32 PM

  • Please reply:how to avoid extra trailing spaces while using cursor sharing

    i am using cursor sharing with FORCE or SIMILAR.
    what is the solution to avoid extra trailing spaces without any java code change.
    do we have any option in oracle to avoid extra trailing spaces during the query processing ?
    I am using Oracle 10g
    CURSOR SHARING is a feature in which multiple sql statements
    which are same will have a shared cursor (in the library cache) for an oracle session,
    i.e, the first three steps of the sql processing (hard parse, soft parse, optimization)
    will be done only the first time that kind of statement is executed.
    There are two ways in which similar SQL statements with different condition values can be made to "SHARE" cursor during execution:
    1. Writing SQLs with Bind Variables: SQLs having no hard coded literals in them
    For e.g., the query below
    SELECT node.emp_name AS configid
    FROM emp node
    WHERE emp_no = :1
    AND dept_no =
    DECODE (SUBSTR (:2, 1, 3),
    :3, :4,
    (SELECT MAX (dept_no)
    FROM emp
    WHERE emp_no = :5 AND dept_no <= :6)
    AND node.dept_type = :7
    ORDER BY node.emp_name
    Here all the variables are dynamically bound during the execution. The ":X" represents BIND Variable and the actual values are bound to the SQL only at the 4th step of the execution of the SQL.
    In applications: The queries written with "?" as bind variables will be converted into ":X" and are sqls with Bind Variables.
    2. The CURSOR_SHARING parameter: Only Useful for SQL statements containing literals:
    For eg., the query below:
    SELECT node.emp_name AS configid
    FROM emp node
    WHERE emp_no = 'H200'
    AND dept_no =
    DECODE (SUBSTR (:1, 1, 3),
    'PLN', :2,
    (SELECT MAX (dept_no)
    FROM emp
    WHERE emp_no = :3 AND dept_no <= :4)
    AND node.dept_type = :5
    ORDER BY node.emp_name
    In the query above, there are two hard coded literals H200 , PLN. In this case when the same SQL executed with different values like (H2003 , PLN), oracle will create a new cursor for this statement and all the first three steps ( hard & soft parse and optimization plan) needs to be done again.
    This can be avoided by changing the CURSOR_SHARING parameter which can be set to any of three values:
    1. EXACT: Causes the mechanism not be used, i.e. no cursor sharing for statements with different literals. This is the default value.
    2. FORCE: Causes unconditional sharing of SQL statements that only differ in literals.
    3. SIMILAR: Causes cursor sharing to take place when this is known not to have any impact on optimization.
    So, FORCE and SIMILAR values of the parameter will be helping in cursor sharing and improve the performance of the SQLs having literals.
    But here the problem arises if we use the FORCE and SIMILAR other than EXACT.
    alter session set cursor_sharing ='EXACT'
    select 1 from dual;
    '1'
    1
    alter session set curson_sharing='FORCE'
    select 2 from dual;
    '2'
    2
    alter session set curson_sharing='SIMILAR'
    select 3 from dual;
    '3'
    3
    So, this will give extra trailing spaces in when we retrieve from java method and any
    further java processing based on the hardcoded literal values will fail. this needs lot of
    effort in remodifying the existing millions of lines of code.
    My question is i have to use cursor sharing with FORCE or SIMILAR and can't we do the trimming
    from the oracle query processing level ?
    please help me on this ?
    Message was edited by:
    Leeladhar
    Message was edited by:
    Leeladhar

    Please reply to this thread
    How to avoid extr trailing spaces using Cursor sharing opton FORCE, SIMILAR

  • How to avoid Flickaring  When Adding data in Addon User Matrix

    Experts,
    I am  Adding Query Result in User Matrix  one by one. but there is lots of Flicker.
    how to Avoid this Flickering.
    Bomiitems = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
                                    If Bomtyp = "U" And BomNo = "0" Then
                                        BOMItem = "SELECT Distinct T0.[Code], T1.[ItemName] , ( 1 / Isnull(T2.[Qauntity],0))* Isnull((T0.[Quantity]),0),('" & Quanti & "'/ Isnull(T2.[Qauntity],0))* Isnull((T0.[Quantity]),0) as "
                                        BOMItem = BOMItem + " 'Quanti',T1.[Excisable],'N' as U_Rec , T1.[InvntryUom],T0.[Warehouse] 'Warehouse',T0.[IssueMthd]'IssMthd' FROM ITT1 T0  INNER JOIN OITM T1 "
                                        BOMItem = BOMItem + " ON T0.Code = T1.ItemCode  INNER JOIN OITT T2 ON T0.Father = T2.Code "
                                        BOMItem = BOMItem + " WHERE T0.[Father] ='" & Icode & "'"
                                        Bomiitems.DoQuery(BOMItem)
                                    ElseIf Bomtyp = "U" And BomNo <> "0" Then
                                        'BOMItem = "SELECT T0.[Code], T1.[ItemName] , ((T0.[Quantity]/ T2.[Qauntity])*'" & Quanti & "') as 'Quanti',T1.[Excisable],'N' as U_Rec FROM ITT1 T0  INNER JOIN OITM T1 ON T0.Code = T1.ItemCode  INNER JOIN OITT T2 ON T0.Father = T2.Code WHERE T0.[Father] ='" & Icode & "'"
                                        BOMItem = "SELECT T1.[U_Icode], T1.[U_IName],(1 / Isnull(Cast( T0.[U_Bqty]  as Float) ,0)) * Isnull(Cast(T1.[U_Quanti]  As Float),0) ,('" & Quanti & "' / Isnull(Cast( T0.[U_Bqty]  as Float) ,0)) * Isnull(Cast(T1.[U_Quanti]  As Float),0)  as 'Quanti',T2.[Excisable], T0.[U_Rec],T2.[InvntryUom] ,T1.[U_Whs] 'Warehouse','B' AS 'IssMthd' "
                                        BOMItem = BOMItem + "FROM [dbo].[@OITTA]  T0 inner join  [dbo].[@ITTA1]  "
                                        BOMItem = BOMItem + "T1 on t0.cODE = t1.Code INNER JOIN OITM T2 ON  T1.[U_Icode] = T2.[ItemCode]"
                                        BOMItem = BOMItem + " WHERE T0.[U_Icode] = '" & Icode & "' AND   T0.[U_AltBom] ='" & BomNo & "' AND T0.U_Btyp = 'U'  "
                                        Bomiitems.DoQuery(BOMItem)
                                    ElseIf Bomtyp = "P" Then
                                        BOMItem = "SELECT T1.[U_Icode], T1.[U_IName],(1 / Isnull(Cast( T0.[U_Bqty]  as Float) ,0)) * Isnull(Cast(T1.[U_Quanti]  As Float),0),('" & Quanti & "' / Isnull(Cast( T0.[U_Bqty]  as Float) ,0)) * Isnull(Cast(T1.[U_Quanti]  As Float),0)  as 'Quanti',T2.[Excisable], T0.[U_Rec] ,T2.[InvntryUom],T1.[U_Whs] 'Warehouse','B' AS 'IssMthd' "
                                        BOMItem = BOMItem + "FROM [dbo].[@OITTA]  T0 inner join  [dbo].[@ITTA1]  "
                                        BOMItem = BOMItem + "T1 on t0.cODE = t1.Code INNER JOIN OITM T2 ON  T1.[U_Icode] = T2.[ItemCode]"
                                        BOMItem = BOMItem + " WHERE T0.[U_Icode] = '" & Icode & "' AND   T0.[U_AltBom] ='" & BomNo & "' AND T0.U_Btyp = 'P' "
                                        Bomiitems.DoQuery(BOMItem)
                                    End If
                                        Bomiitems.DoQuery(BOMItem)
                                    If Bomiitems.RecordCount > 0 Then
                                        'RecCount1 = RecSet1.RecordCount
                                        Bomiitems.MoveFirst()
                                        i = 0
                                        'osubForm   .Freeze(True)
                                        oMatrix = oForm.Items.Item("1000001").Specific
                                        oMatrix.FlushToDataSource()
                                        While Not (Bomiitems.EoF)
                                            If i = 0 Then
                                                oMatrix.AddRow()
                                                oForm.DataSources.DBDataSources.Item("@TPROD1").SetValue("LineId", 0, i + 1)
                                                oForm.DataSources.DBDataSources.Item("@TPROD1").SetValue("U_ItemCode", 0, Bomiitems.Fields.Item(0).Value)
                                                oForm.DataSources.DBDataSources.Item("@TPROD1").SetValue("U_ItemName", 0, Bomiitems.Fields.Item(1).Value)
                                                oForm.DataSources.DBDataSources.Item("@TPROD1").SetValue("U_BaseQty", 0, Bomiitems.Fields.Item(2).Value)
                                                oForm.DataSources.DBDataSources.Item("@TPROD1").SetValue("U_PlanQty", 0, Bomiitems.Fields.Item(3).Value)
                                                oForm.DataSources.DBDataSources.Item("@TPROD1").SetValue("U_IssueQty", 0, Bomiitems.Fields.Item(3).Value)
                                                oForm.DataSources.DBDataSources.Item("@TPROD1").SetValue("U_Whs", 0, Bomiitems.Fields.Item("Warehouse").Value)
                                                oForm.DataSources.DBDataSources.Item("@TPROD1").SetValue("U_IsueType", 0, Bomiitems.Fields.Item("IssMthd").Value)
                                                Dim orsWhsDetails As SAPbobsCOM.Recordset
                                                Dim strWhsDetails As String
                                                orsWhsDetails = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
                                                strWhsDetails = "SELECT T0.[OnHand], T0.[IsCommited], T0.[OnOrder],T1.[OnHand] FROM OITW T0 INNER JOIN OITM T1 ON T0.ItemCode = T1.ItemCode WHERE T0.[ItemCode] ='" & Bomiitems.Fields.Item(0).Value & "' AND   T0.[WhsCode] ='" & Bomiitems.Fields.Item("Warehouse").Value & "' "
                                                orsWhsDetails.DoQuery(strWhsDetails)
                                                oForm.DataSources.DBDataSources.Item("@TPROD1").SetValue("U_Whsestk", 0, orsWhsDetails.Fields.Item(0).Value)
                                                oForm.DataSources.DBDataSources.Item("@TPROD1").SetValue("U_AVILSTK", 0, (orsWhsDetails.Fields.Item(0).Value - Bomiitems.Fields.Item(3).Value))
                                                oForm.DataSources.DBDataSources.Item("@TPROD1").SetValue("U_PLANTSTK", 0, orsWhsDetails.Fields.Item(3).Value)
                                                oMatrix.LoadFromDataSource()
                                            Else
                                                oMatrix.FlushToDataSource()
                                                oForm.DataSources.DBDataSources.Item("@TPROD1").InsertRecord(i)
                                                oForm.DataSources.DBDataSources.Item("@TPROD1").SetValue("LineId", i, i + 1)
                                                oForm.DataSources.DBDataSources.Item("@TPROD1").SetValue("U_ItemCode", i, Bomiitems.Fields.Item(0).Value)
                                                oForm.DataSources.DBDataSources.Item("@TPROD1").SetValue("U_ItemName", i, Bomiitems.Fields.Item(1).Value)
                                                oForm.DataSources.DBDataSources.Item("@TPROD1").SetValue("U_BaseQty", i, Bomiitems.Fields.Item(2).Value)
                                                oForm.DataSources.DBDataSources.Item("@TPROD1").SetValue("U_PlanQty", i, Bomiitems.Fields.Item(3).Value)
                                                oForm.DataSources.DBDataSources.Item("@TPROD1").SetValue("U_IssueQty", i, Bomiitems.Fields.Item(3).Value)
                                                oForm.DataSources.DBDataSources.Item("@TPROD1").SetValue("U_Whs", i, Bomiitems.Fields.Item("Warehouse").Value)
                                                oForm.DataSources.DBDataSources.Item("@TPROD1").SetValue("U_IsueType", i, Bomiitems.Fields.Item("IssMthd").Value)
                                                Dim orsWhsDetails As SAPbobsCOM.Recordset
                                                Dim strWhsDetails As String
                                                orsWhsDetails = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
                                                strWhsDetails = "SELECT T0.[OnHand], T0.[IsCommited], T0.[OnOrder],T1.[OnHand] FROM OITW T0 INNER JOIN OITM T1 ON T0.ItemCode = T1.ItemCode WHERE T0.[ItemCode] ='" & Bomiitems.Fields.Item(0).Value & "' AND   T0.[WhsCode] ='" & Bomiitems.Fields.Item("Warehouse").Value & "' "
                                                orsWhsDetails.DoQuery(strWhsDetails)
                                                oForm.DataSources.DBDataSources.Item("@TPROD1").SetValue("U_Whsestk", i, orsWhsDetails.Fields.Item(0).Value)
                                                oForm.DataSources.DBDataSources.Item("@TPROD1").SetValue("U_AVILSTK", i, (orsWhsDetails.Fields.Item(0).Value - Bomiitems.Fields.Item(3).Value))
                                                oForm.DataSources.DBDataSources.Item("@TPROD1").SetValue("U_PLANTSTK", i, orsWhsDetails.Fields.Item(3).Value)
                                                oMatrix.LoadFromDataSource()
                                            End If
                                            i = i + 1
                                            Bomiitems.MoveNext()
                                            oMatrix.LoadFromDataSource()
                                        End While
                                        oMatrix.LoadFromDataSource()
                                    End If
    Regards,
    Pravin Baji

    follow steps
    1)     Execute query so we can get data set
    2)     Clear matrix and data source (omatrix.clear(), oDBS.Clear())
    3)     Open loop
    4)     Insert record to oDBS using oDBS.InsertRecords(oDBS.Offset)
    5)     Then set value using oDBS.Setvalue(u2026u2026
    6)     Move next record
    7)     Finally close the loop
    8)     Matrix load from record set using oMatrix.LoadfromData()
    it will be work

  • How to avoid output file and error lines when condition does not match

    Hi Experts
    A customer want to send purchase order files to several vendors and each vendor has their own requirement to content and file format. I have prepared scenarios for each vendor and a template is (conditionally) called when CardCode matches. It works fine, - PO file is generated when CardCode matches, but error lines are written to SAP B1 Control Center each time CardCode does not match the one defined in a scenario (100 or more times per day). Problem is that these error lines does not get automatic deleted. Conditional processing are made in this way:
    Result Message in SAP B1 Control Center when CardCode does not match:
    I tried to avoid an error line in SAP B1 Control Center when CardCode does not match in this way:
    Then no error lines are written to SAP B1 Control Center, but an output file is generated each time (order file when CardCode matches and an empty file when CardCode does not match).
    Any suggestions on how to avoid both errors types (error lines in SAP B1 Control Center and empty output files)?
    Or - can lines in SAP B1 Control Center be automatic deleted?
    Regards
    Steen

    Hi Steen,
    using <b1im_skip> should be the right approach, if you're working with B1 OUTBOUND.
    Following extract form the B1i help describes the usage to skip the outbound processing:
    1.1 Skipping Outbound Processing
    If you do not want to hand over the message to the receiver system, the scenario step can create a special tag that indicates to generic processing in the integration framework to skip the message processing.
    Add the following to the final transformation atom (atom0):
    <b1im_skip xmlns= ”” info=”my info” msglog=”true” msgout="yes">
    If the integration framework skips the message, it puts the message log information to the Filtered section, if the message log is switched on. The result message contains the Message skipped by vBIU logic information.
    info
    To display an individual message, define it using the info attribute.
    msglog
    If you want to avoid an entry in the message log, introduce the msglog attribute and set it to false.
    msgout
    To display the skip information in the Success section of the message log, use the msgout attribute and set it to yes.
    In case you don't want any MsgLogEntry in case of a skipped message, please enter the following in final atom0:
    <xsl:template name="transform">
    <xsl:attribute name="pltype">xml</xsl:attribute>
    <xsl:choose>
    <xsl:when test="$msg/BOM/BO/Documents/row/CardCode=&apos;C20000&apos;">
    <xsl:call-template name="transform2"/>
    </xsl:when>
    <xsl:otherwise>
    <b1im_skip info="skipped" msglog="false"/>
    </xsl:otherwise>
    </xsl:choose>
    </xsl:template>
    Best regards
    Bastian

Maybe you are looking for