Map structure with logic

Hi there,
I am currently facing the issue to map fields depending on on other fields values:
The problem is as follows:
there are two sources for values,
if the value can be found in source1 and source2 no value is mapped
if the value can be found in s1 but not in s2 the value should be mapped with attribute "delete"
if the value can not be found in s1 but in s2 the value should be mapped with the attribute "create"
At the Moment I have no idear which approach to try, I thought about using a scripting functoid but I am not shure if it is possible to have multiple in and output nodes? I don`t have any experience with xslt but maybe it is neccesary to learn it for this?
thanks in advance for your ideas!
<source1>
<value>111</value>
<value>112</value>
<value>113</value>
</source1>
<source2>
<value>111</value>
<value>124</value>
<value>125</value>
<value>126</value>
</source2>
<result>
<value atrribute="delete">112</value>
<value attribute="delete">113</value>
<value attribute="create">124</value>
<value attribute="create">125</value>
<value attribute="create">126</value>
</result>

If your input XML looks like this:
<Root>
<source1>
<value>111</value>
<value>112</value>
<value>113</value>
</source1>
<source2>
<value>111</value>
<value>124</value>
<value>125</value>
<value>126</value>
</source2>
</Root>
And you apply the following XSLT:
<?xml version="1.0" encoding="utf-16"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:var="http://schemas.microsoft.com/BizTalk/2003/var" exclude-result-prefixes="msxsl xsl var" version="1.0">
<xsl:output omit-xml-declaration="yes" method="xml" version="1.0" />
<xsl:template match="Root">
<result>
<xsl:for-each select="source1/value">
<xsl:variable name="myValue" select="." />
<xsl:if test="(count(//value[text() = $myValue]) = 1)">
<value attribute="delete">
<xsl:value-of select="." />
</value>
</xsl:if>
</xsl:for-each>
<xsl:for-each select="source2/value">
<xsl:variable name="myValue" select="." />
<xsl:if test="(count(//value[text() = $myValue]) = 1)">
<value attribute="create">
<xsl:value-of select="." />
</value>
</xsl:if>
</xsl:for-each>
</result>
</xsl:template>
</xsl:stylesheet>
You will get the following output:
<result>
<value attribute="delete">112</value>
<value attribute="delete">113</value>
<value attribute="create">124</value>
<value attribute="create">125</value>
<value attribute="create">126</value>
</result>
Morten la Cour

Similar Messages

  • Error in messege mapping " Structure with min!=max without mapping"

    Hi Experts,
                           got an error in  messege mapping, after mapping was done as " Structure with min!=max without mapping" . Any idea what is my mistake!
    Points will be rewarded.
    Thanks and Regards,
    Arnab.

    Hi Mohd,
    This error pops up when your mapping is incomplete...
    First check all the fields are mapped....
    and check all the required fields are mapped which are in RED in colour...if not map to the specific field or to a constant or disable that one...and check the type of the sourse and target fields.....is it string,floatetc
    you got a element, which occurences (=minOccurs & maxOccurs) are unequal.
    Those fields have to be mapped.
    http://help.sap.com/saphelp_nw04/helpdata/en/02/9a6a1c244411d5b2e30050da4c74dc/frameset.htm
    Reward points if this helps
    Regards
    Pragathi.

  • Synchronization of uploaded rhythmic audio structure with Logic-created beat?

    That´s it.
    I wanna equalize an uploaded rhythmic audio structure with an Logic-created beat. F.e., the audio sound could be the sound of a watch having 60bpm normally, and the Logic-beat has 80bpm. How do I get both to the same bpm? Thx for any useful answer.

    The MIDI data is in your Boss machine. There is no MIDI in Logic to pull audio from your drum machine. Once Logic is slaved you have three options. 1. Realtime record two tracks of audio into Logic from your drum machine. 2. If your drum machine can actually generate musical parts on independant tracks like my old Boss DR-5, then you can record separate tracks into Logic one at a time by muting all but one track for each recording. 3. You could record MIDI from your DR880 into Logic. This is the best option since you can record all channels in one pass and then edit parts in the matrix editor, where you can monitor individual notes or requantize as you see fit. Also, once the MIDI recording is complete, you no longer have to sync Logic to your drum machine. Logic will play the recorded MIDI data back through your drum machine. If you create new tracks in Logic like vocals or adding a new instrument, then you may wish to change part of the DR880 beat to complement the new recordings. You won't have this option unless you record MIDI first, edit all tracks together in Logic, and then bounce to audio after all editing is complete. When recording MIDI from your DR880, make sure you set up new external MIDI tracks in Logic. Make sure to create one track per MIDI channel coming from your BOSS.
    Record arm the new MIDI tracks in Logic and then you are ready to do your MIDI recording of all tracks in one pass.

  • Strange error in mapping test: Structure with min!=max without mapping

    Hi,
    a very simple mapping: flatfile 2 Idoc.
    in mapping test I'm trying to test it. but I get always a strange error warning:
    11:25:12 Teststart Mapping-Objekt MM_XXXXX2WGSREQ is not completely designed. The execution is impossible.
    Structure with min!=max without mapping
    11:25:12 Testende
    What for a problem?
    Thanks for any hints!
    Regards
    Rene

    Hi Rene,
    Check the mapping of 1:n occurence and 0:n occurence nodes.
    you can find the node in yellow color in the map level.
    Regards,
    Harish

  • Structure with min!=max without mapping

    Hi,
    At Message Mapping - Test Tab, we have the following error:
    "Mapping object  incomplete. Unable to continue execution
    Structure with min!=max without mapping"
    We did added some custom segments to the standard idoc, but we already validate the xml structure and it seems valid.
    Do you guys know what it means?
    Thanks in advance,
    Luí

    Hi,
    If you don't map a mandatory target field, red bulb is shown in graphical mapping.Altough it saves "successfully", it fails while testing using the Test Tool and throws an error mapping incomplete Unable to continue execution. So try debugging for the unmapped target field .
    BR.Venkat

  • Duplicate processing by DBAdapter when using Distributed Polling with Logical Delete Strategy

    We have DBAdapter based polling services in OSB running across two Active-Active clusters (total 20 managed service across 2 clusters),
    listening to the same database table. (Both clusters read from the same source DB). We want to ensure distributed polling without duplication,
    hence in the DBAdapter we have selected Distributed Polling option, meaning we are using "Select For Update Skip Locking".
    But we see that sometimes, same rows are processed by two different nodes and transactions are processed twice.
    How do we ensure that only one managed server processes a particular row using select for update? We do not want to use the markReservedValue option which was preferred in older version of DBAdapter.
    We are using following values in DB Adapter configuration, the Jdev project for DBAdapter and the OSB proxy using DBAdapter are attached.
    LogicalDeletePolling Strategy
    MarkReadValue = Processed
    MarkUnreadValue = Initiate
    MarkReservedValue = <empty as we are using Skip Locking>
    PollingFrequency = 1 second
    maxRaiseSize = 1
    MaxTransactionSize = 10
    DistributionPolling = checked   (adds lock-n-wait in properties file and changes the SQL to SELECT FOR UPDATE SKIP LOCKED)
    Thanks and Regards

    Hi All,
    Actually I'm also facing the same problem.
    Step I follwed:
    1) Created a job_table in database
    create talbe job_table(id, job_name, job_desc, job_status)
    2)created a bpel process to test the Inbound distributed polling.
    3)Configure the DBAdapter for polling.
    a)update a field in the job_table with logical delete.
    b)select the field name form the drop down
    c) change the read value-->Inprogress and unRead value--->Ready
    d) dont change the value for Reserved value
    e) select the check box for "distributed polling".
    f) the query will be appended with "For update NoWait."
    g)click next and then finish.
    4) Then i followed the below steps.
    To enable pessimistic locking, run through the wizard once to create an inbound polling query. In the Applications Navigator window, expand Application Sources, then TopLink, and click TopLink Mappings. In the Structure window, click the table name. In Diagram View, click the following tabs: TopLink Mappings, Queries, Named Queries, Options; then the Advanced… button, and then Pessimistic Locking and Acquire Locks. You see the message, "Set Refresh Identity Map Results?" If a query uses pessimistic locking, it must refresh the identity map results. Click OK when you see the message, "Would you like us to set Refresh Identity Map Results and Refresh Remote Identity Map Results to true?Ó Run the wizard again to regenerate everything. In the new toplink_mappings.xml file, you see something like this for the query: <lock-mode>1</lock-mode>.
    5) lock-mose is not changed to 1 in toplink_mappingss.xml
    Can we edit the toplink_mappings.xml manually.
    If yes, what allt he values Ineed to change in toplink_mappings.xml file, so that it will not pick the same record for the multiple times in clustered environment.
    Please help me out this is urgent.
    Thanking you in advance.

  • DBAdapter polling with logical delete x distrib polling x DB rows per trans

    Hi all.
    I'm trying to configure a DBAdapter with "logical delete" polling strategy, distributed polling (cluster environment) and a defined number of "Database Rows per Transaction".
    When I check the box "Distributed Polling", the SQL generated gets appended by "FOR UPDATE NOWAIT"
    However, when I set a value for "Database Rows per Transaction" the "FOR UPDATE NOWAIT" sql clause disappear.
    Is this a bug, or some limitation related to the "logical delete" strategy???
    Thanks
    Denis

    Hi All,
    Actually I'm also facing the same problem.
    Step I follwed:
    1) Created a job_table in database
    create talbe job_table(id, job_name, job_desc, job_status)
    2)created a bpel process to test the Inbound distributed polling.
    3)Configure the DBAdapter for polling.
    a)update a field in the job_table with logical delete.
    b)select the field name form the drop down
    c) change the read value-->Inprogress and unRead value--->Ready
    d) dont change the value for Reserved value
    e) select the check box for "distributed polling".
    f) the query will be appended with "For update NoWait."
    g)click next and then finish.
    4) Then i followed the below steps.
    To enable pessimistic locking, run through the wizard once to create an inbound polling query. In the Applications Navigator window, expand Application Sources, then TopLink, and click TopLink Mappings. In the Structure window, click the table name. In Diagram View, click the following tabs: TopLink Mappings, Queries, Named Queries, Options; then the Advanced… button, and then Pessimistic Locking and Acquire Locks. You see the message, "Set Refresh Identity Map Results?" If a query uses pessimistic locking, it must refresh the identity map results. Click OK when you see the message, "Would you like us to set Refresh Identity Map Results and Refresh Remote Identity Map Results to true?Ó Run the wizard again to regenerate everything. In the new toplink_mappings.xml file, you see something like this for the query: <lock-mode>1</lock-mode>.
    5) lock-mose is not changed to 1 in toplink_mappingss.xml
    Can we edit the toplink_mappings.xml manually.
    If yes, what allt he values Ineed to change in toplink_mappings.xml file, so that it will not pick the same record for the multiple times in clustered environment.
    Please help me out this is urgent.
    Thanking you in advance.

  • Require a Message mapping for this Logic.

    Hi Experts,
    I require a Message mapping for this Logic.
    In the Source there are 4 fields and, the Target side, the fields should appear like this.
    Source Structure- File
    Record
    |-> Header
    Order_No
    Date
    |-> Item
    Mat_No
    Quantity
    Target Structure-IDoc
    IDoc
    |-> Header
    |-> Segment
    Delivery_Order_No
    Recv_Date
    |-> Item
    |-> Segment
    Delivery_Order_No
    Material_Num
    Recv_Quantity.
    The Logic is for every Order number an IDOC is generated.And if the Material num matches then the quantity should be added. and important note  is that the material numbers are different for every order number. That means if a material number is 2 in the order number A. Then the material number can never be 2 in any of the order numbers.Here is the following with an example for the above scenario.
    For example:-
    we have
    Source Structure- File
    Order-no Date Mat_No Quantity
    1 01/02/2011 A 10
    1 01/02/2011 B 15
    1 01/02/2011 A 10
    2 01/02/2011 C 10
    2 01/02/2011 C 10
    3 01/02/2011 D 20
    3 01/02/2011 D 10
    3 01/02/2011 E 25
    Target Structure-IDoc
    Delivery_Order_No Recv_Date Material_Num Recv_Quantity
    1 01/02/2011 A 20
    1 01/02/2011 B 15
    2 01/02/2011 C 20
    3 01/02/2011 D 30
    3 01/02/2011 E 25
               So for this example total of 5-Idocs created. That means for this example if Order_No is 1 When the Mat_No is A the quantity gets added. For this Scenario 1 IDoc with four Fields 2 in Header(Delivery_Order_No, Recv_Date) and 2 in Item(Material_Num, Recv_Quantity) is generated by adding the quantity field in the Target Side. Similarly if Order_No is 1 when the Mat_No is B  then separate IDoc is generated with four Fields 2 in Header(Delivery_Order_No, Recv_Date) and 2 in Item(Material_Num, Recv_Quantity) in the Target Side. Similarly, if Order_No is 2 when the Mat_No is C, an IDoc is generated with four Fields 2 in Header(Delivery_Order_No, Recv_Date) and 2 in Item(Material_Num, Recv_Quantity) by adding the quantity field  in the Target Side.  ike wise the process goes on upto 3.Kindly do the needy..
    Thanq very much in advance..
    Edited by: Prashanth Bharadwaj on Oct 17, 2011 1:29 PM

    Hi Prashanth,
    Concatinate the two fields OrderNo and MaterialNo and follow the below logic which will resolve your problem.
    concatinationOfOrderNo&MaterialNo>removecontext>sort>splitByValueChange>collapseContext-->IDOC
    concatinationOfOrderNo&MaterialNo>removecontext>sort>splitByValueChange>collapseContext>splitByEachValue>subString(0,1)-->Delivery_Order_No
    formatByExample>collapseContext>SplitByEachValue-->Recv_Date
    FormatByExample:
    input1:resulrOfSortByKey
    input2:concatination>removecontext>sort-->SplitByValuChange
    sortByKey:
    input1:concatination-->removecontext
    input2:date-->removecontext
    concatinationOfOrderNo&MaterialNo>removecontext>sort>splitByValueChange>collapseContext>splitByEachValue>subString(1,1)-->Material_Num
    formatByExample>sum>Recv_Quantity
    FormatByExample:
    input1:sortByKey
    input2:concatination>removecontext>sort-->SplitByValueChange
    SortByKey:
    input1:concatination-->removecontext
    input2:Quantity-->removeContext
    Regards,
    Priyanka.

  • Best drum loops for use with Logic? Ease of use, usability, etc.

    Hi,
    I have BFD2 but find it slow to load and sometimes clumsy auditioning loops within Logic. I love the Apple Loops library but I wondered if people are importing MIDI drum files for use with Logic. Do all drum files use the same MIDI mapping? If I drop a BFD2 loop into a Logic drum virtual instrument will it work? I bought a few packs from Groove Monkee but have yet to use them with Logic. I only use them within BFD2.
    I'm basically looking for a seamless way to stay within Logic to improve my workflow. It's taken me days sometimes to get a drum track right by going back and forth with BFD2. Is there a concept I'm missing that would make it easier?
    Thanks

    try Stylus RMX by Spectrasonics. http://www.youtube.com/watch?v=FlgP1q1HCj4

  • What are structures of logical database.

    hi
    what are structures of logical database.

    Dear Chaitanya,
    The structure of LDB can be divided into three sections:
    >Structure
    >Selection
    >Database Program
    STRUCTURE:
    The structure defines the data view of the logical database. It adopts the hierarchy of the database tables defined by their foreign key relationships. This also controls the sequence in which the tables are accessed. It determines the structure of the other components and the behavior of the logical database at runtime.
    The structure of a logical database is usually based on the foreign key relationships between hierarchical tables in the SAP System. Logical databases have a tree-like structure, which can be defined as follows:
    · There is a single node at the highest level. This is known as the root node.
    · Each node can have one or several branches.
    · Each node is derived from one other node.
    The nodes must be structures defined in the ABAP Dictionary or data types from a type group. Normally, these are the structures of database tables which the logical database reads and passes to the user for further evaluation. However, it is also possible, and sometimes useful, to use ABAP Dictionary structures without an underlying database. For technical reasons, the maximum number of nodes allowed in the structure of a logical database is 300.
    Any executable ABAP program that has a logical database linked to it can contain a GET statement for each node of the structure. When you run the program, the corresponding event blocks are processed in the sequence prescribed by the hierarchical structure of the logical database. If a program does not contain a GET statement for every node of a logical database, the processing passes through all the nodes that lie in the path from the root to the nodes specified by GET statements.
    If you call a logical database using the function module LDB_PROCESS, the depth to which the system reads is controlled by an interface parameter.
    SELECTIONS:
    The selections define a selection screen, which forms the user interface of the executable programs that use the logical database. Its layout is usually determined by the structure. You can adapt the selections to your own requirements and also add new ones. When you link a logical database to an executable program, the selections of the logical database become part of the standard selection screen of the program (screen number 1000). If you call a logical database using the function module LDB_PROCESS, the selections are filled using interface parameters.
    The selections in a logical database are defined using the normal statements for defining selection screens, that is, PARAMETERS, SELECT-OPTIONS and SELECTION-SCREEN. In a logical database, you can also use the additions VALUE-REQUEST and HELP-REQUEST to define specific input and value help. You define the selection screen in a special include program known as the selection include.
    When you write programs using a logical database, you can also add your own program specific selections. The standard selection screen then contains the database-specific selections, followed by the program-specific selections that you have defined.
    When the system generates the selection screen for an executable program, database-specific selection criteria and parameters are only displayed if you have declared an interface work area for them in your program using the NODES or TABLES statement.
    Suppose you have a selection include containing the following lines:
    SELECT-OPTIONS slifnr FOR lfa1-lifnr.
    PARAMETERS pbukrs LIKE lfb1-bukrs FOR TABLE lfb1.
    The selection criterion SLIFNR is linked to table LFA1, the parameter PBUKRS to table LFB1. If the TABLES statement in an executable program (report) declares LFA1 but not LFB1, SLIFNR is displayed on the selection screen, but PBUKRS does not appear.
    The selection screen of a logical database can contain dynamic selections as well as static ones. Dynamic selections are extra, user-defined selections that the user can make as well as using the static selections defined in the selection include. To improve performance, you should always use this option instead of reading more data than you need and then sorting it out in the application program.
    To make dynamic selections available for the node nodeof a logical database, the selection include must contain the following statement:
    SELECTION-SCREEN DYNAMIC SELECTIONS FOR NODE|TABLE node.
    If the node node is requested by the user of the logical databases, the dynamic selections are included in the selection screen. A user can then choose Dynamic selections to enter extra selections for the corresponding fields. If you call the logical database using the function module LDB_PROCESS, you can pass a corresponding parameter. You can use these selections in dynamic statements in the logical database program to read data. The values of the program-specific selection criteria that you defined for a node for which dynamic selections were available are also passed to the logical database. The user can also define the fields for dynamic selections as a selection view for the logical database.
    The selection screen of a logical database is part of the standard selection screen (number 1000) of the executable program to which the logical database is attached. It has a standardized layout - the selection criteria and parameters appear on separate lines in the order in which they were declared. You can change the layout using the SELECTION-SCREENstatement.
    The runtime environment generates the selection screen with number 1000 for every program in which the attributes do not contain a different selection screen version. You can prevent certain input fields from the selection screen of a logical database from appearing on the selection screen by defining selection screen versions with a screen number lower than 1000 in the selection include, and entering this version number in the program attributes. By pressing F4 there, you can get an overview of the selection screen versions defined in the logical database concerned. To define a selection screen version, use the statements SELECTION-SCREEN BEGIN|END OF VERSION. Within these statements you can use SELECTION-SCREEN EXCLUDEto specify fields that you do not want to appear on the selection screen.
    If the attributes of an executable program contain the number of a selection screen version, the version is used in the standard selection screen. Although the input fields that you excluded from the selection screen are not displayed, the corresponding selections still exist, and you can still edit them in the program or by calling the function module LDB_PROCESS.
    DATABASE PROGRAM:
    The database program contains the ABAP statements used to read the data and pass it to the user of the logical database. There is a container for special subroutines into which, amongst other things, the data from the database tables is read. These subroutines are called by the reporting processor in the runtime environment in a sequence that has been predefined by the structure. The database program is determined by the structure and selections and can be adapted or expanded to meet your requirements.
    The name of the database program of a logical database ldbconforms to the naming convention SAPDBldb. It serves as a container for subroutines, which the ABAP runtime environment calls when a logical database is processed. The sequence of the calls and their interaction with the events in executable programs or the function module LDB_PROCESS depends on the structure of the logical database.
    A logical database program usually contains the following subroutines:
    · FORM LDB_PROCESS_INIT
    Called once only before the logical database is processed. It prepares it to be called more than once by the function module LDB_PROCESS.
    · FORM INIT
    Called once only before the selection screen is processed.
    · FORM PBO
    Called before the selection screen is displayed, each time it is displayed. Consequently, it is only called when you use the logical database with an executable program, not with the function module LDB_PROCESS.
    · FORM PAI
    Called when the user interacts with the selection screen. Consequently, it is only called when you use the logical database with an executable program, not with the function module LDB_PROCESS. The interface parameters FNAME and MARK are passed to the subroutine.
    FNAME contains the name of a selection criterion or parameter on the selection screen.
    MARK describes the selection made by the user: MARK = space means that the user has entered a simple single value or range selection. MARK = '*' means that the user has also made entries on the Multiple Selection screen.
    · FORM LDB_PROCESS_CHECK_SELECTIONS
    Called instead of the subroutine PAI if the logical database is called using the function module LDB_PROCESS without a selection screen. This subroutine can check the selections passed in the function module interface.
    · FORM PUT_node
    Called in the sequence defined in the structure. Reads the data from the node nodeand uses the
    PUT node.
    statement to trigger a corresponding GETevent in the ABAP runtime environment. The PUT statement is the central statement in this subroutine: It can only be used within a subroutine of a logical database. The logical database must contain the node node, and the subroutine name must begin with PUT_node. The PUT statement directs the program flow according to the structure of the logical database. The depth to which the logical database is read is determined by the GET statements in the application program or the interface parameter CALLBACK of the function module LDB_PROCESS.
    First, the subroutine PUT_root is executed for the root node. The PUT statement then directs the program flow as follows:
    i. If the database program contains the subroutine AUTHORITY_CHECK_node, the first thing the PUT_node statement does is to call it.
    ii. Next, the PUT statement triggers a GET event in the runtime environment. If there is a corresponding GET nodestatement in the executable program to which the logical database is linked, the associated event block is processed. If the CALLBACK parameter of the function module LDB_PROCESS is filled accordingly, the corresponding callback routine is called.
    iii. The PUT statement directs the program flow
    (a) To the next subroutine of a node that follows directly, if a lower-level node (not necessarily the very next) in the same subtree is requested by GET in the executable program or in the function module.
    (b) To the subroutine of a node at the same level, if the preceding node branches to such a node and if a GET statement exists for such a node in the executable program or the function module.
    The PUT statement in that subroutine starts again at step (i). In the subroutine of the lowest node in a subtree to be processed using GET, the program control does not branch further. Instead, the current subroutine is processed further. When a subroutine PUT_node has been executed in its entirety, the program flow returns to the PUTstatement from which it branched to the subroutine PUT_node.
    iv. When control has returned from a lower-level subroutine PUT_node, the PUTstatement triggers the event GET node LATEin the runtime environment.
    · FORM AUTHORITY_CHECK_node
    Called automatically by the PUT node statement. In this subroutine, you can specify authorization checks for the appropriate node node from the structure of the logical database.
    · FORM PUT_ldb_SP
    Called when the user makes a selection using a search help to process the key chosen in the search help. ldb is the name of the logical database. From this subroutine, you can use the entries in the search help tables to read the relevant entries from the root node root. The processing in the program can then be triggered using PUT root. The subroutine PUT_root is then not called automatically.
    · FORM BEFORE_EVENT
    Called before an event, the name of which is passed in the parameter EVENT. Currently, the EVENT field can only contain the value START-OF-SELECTION, to call a subroutine before this event.
    · FORM AFTER_EVENT
    Called after an event, the name of which is passed in the parameter EVENT. Currently, the EVENT field can only contain the value END-OF-SELECTION, to call a subroutine after this event.
    · FORM par_VAL, selop_VAL, selop-LOW_VAL, selop-HIGH_VAL
    Called when the user calls possible values help for the parameter par or the selection criterion selop. These must belong to the selections in the logical database.
    · FORM par_HLP, selop_HLP, selop-LOW_HLP, selop-HIGH_HLP
    Called when the user calls possible values help for the parameter par or the selection criterion selop. These must belong to the selections in the logical database.
    Example
    Suppose that in the logical database structure, LFB1 is a branch of LFA1.
    and that the following selection criteria are defined in the selection include:
    SELECT-OPTIONS: slifnr FOR lfa1-lifnr,
    sbukrs FOR lfb1-bukrs.
    A section of the database program would then read:
    FORM put_lfa1.
    SELECT * FROM lfa1
    WHERE lifnr IN slifnr.
    PUT lfa1.
    ENDSELECT.
    ENDFORM.
    FORM put_lfb1.
    SELECT * FROM lfb1
    WHERE lifnr = lfa1-lifnr.
    AND bukrs IN sbukrs.
    PUT lfb1.
    ENDSELECT.
    ENDFORM.
    An executable program (report) linked to the logical database could contain the lines:
    GET lfa1.
    WRITE lfa1-lifnr.
    GET lfb1.
    WRITE lfb1-bukrs.
    In this example, the runtime environment calls the routine put_lfa1 after the event START-OF-SELECTION. The event GET lfa1 is triggered by the statement PUT lfa1.
    Once the corresponding event block in the program is complete, PUT lfa1 branches to the subroutine put_lfb1.
    From this subroutine, the event GET lfb1 is triggered in the application program. If LFB1 is the last node to be read, processing resumes with the SELECTloop in put_lfb1. Otherwise, the program flow moves to the subroutine put_node of the next node. At the end of the SELECT loop of the last node, processing resumes in the SELECTloop of the node at the next level up. The example of programming using nested SELECT loops is only used to make the program flow clearer. In a real logical database, you would avoid doing this in order to minimize the number of database accesses.
    Regards,
    Rajesh K Soman
    Please reward points if helpful.

  • Questions about Novation Remote 25SL integration with Logic Pro 8

    Preface: I have to apologize in advance if this seems somewhat confusing. I'm sure some of the terms I'm using are just plain wrong - I'm somewhat of a n00b.
    I have a Novation Remote 25SL configured to use AutoMap with Logic Pro 8 from Novation's website and most things are working well. It's confusing at times because sometimes I find it hard to tell what mode the keyboard is in, but that's ok - it's the least of my worries. Based on what I've seen through reading the manuals and my own experimentation, I have a couple of questions:
    - Despite what the guy at the store told me, I can't seem to figure out how to select different kits from within the SL. For example, if I have a garageband instrument selected on a track - can I use the data/select knob on the SL as it is now, or do I have to program that somewhere, somehow? Or if I have Ultrabeat on a track, can I use the knob to select the different kits/banks?
    - Is there a way to control non-Apple AU plugins like the rest of those which ship with Logic? All the sexy looking ones like Ringshifter, Compressor, Overdrive, etc. It seems odd that Remote will go into Mixer Automap mode and be able to control the certain portions of the instruments, but not the plugins that are automatically loaded into the channel strip when the instrument is loaded.
    - I have a 25 key Remote. In Ultrabeat, I find the key maps miss a chunk of notes between where the drum pads end and where the keyboard starts (or vice-verse). Is there a way to get it so each key has a mapping? 25 keys in Ultrabeat, 25 keys on the board plus 8 drum pads - seems like there's lots of room.
    Thanks in advance for all your feedback.
    Message was edited by: Jason Lixfeld

    Follow-up research:
    Apparently there is a driver conflict between the AlphaTrack and the ReMOTE. So far I have got the ReMOTE working - sort of - in Logic using the following method which was published at Novation's Answerbase:
    1. disconnect the alphatrack.
    2. launch Logic and then turn on the ReMOTE SL.
    3. Go into the Environment window, and add a Monitor Object. Connect it to the Remote SL's ports 2 and 3.
    So far, this seems to at least get MIDI note input into Logic, but the Automap function seems a bit sketchy so far. This will depend on Novation updating Automap and the SL's firmware for Logic 8.
    As noted previously, there doesn't seem to be any AlphaTrack support in Logic 8 yet and it's up to Apple to make it work. They do support their TranzPort product, so with luck there'll be support in the next update.
    I'd really love to use BOTH control surfaces with Logic simultaneously -- the AlphaTrack with the Mixer and plugins, the ReMOTE with Software Instruments. I suppose it might take some interesting mapping but this doesn't seem like that strange a setup -- there are plenty of "mixer surfaces" like the M-Audio one, and the Novation Automap stuff is quite popular....

  • Mapping Problem with IDOC HRMD_A05

    Hi All,
    When i am mapping source structure with IDOC HRMD_A05 i am getting Mapping not sufficiently defined...
    The idoc is used to change the address of employee(infotype 0006)..
    my source structure is
    EMPADDR_MT
       EmpAddr1
         Trans_INFTY *
        Address1
          AddressType *
          PERNR       *
          EFdate      *
          Addr1       *
          Addr2       *
          ADDR4       *
          City        *
          Country     *
          state       *
          Postalcode  *
    the fields to be mapped
    So can any one help me out what r fields to be maintained for <b>HRMD_A05</b>...
    Regards,
    Sridhar
    Message was edited by: sridhar reddy kondam

    All the required fields & segments(shown red in mapping editor or min occurence:1) of idoc need to be mapped.If any of the fields are not available in your source for mapping..map those fields with empty constants using constant option of the mapping editor.

  • MAPPING ERROR with IDOC

    Hi Friends,
           I am working on IDOC to JDBC scenario. Here i am using DEBMAS06 IDOC . when i tried to trigger an IDOC from BD12 T code its triggering an idoc but when i see it in MONI of XI, its giving mapping error. when i test my mapping program its executing successfully. even i tried to execute  with the incoming data in the sxmb_moni, i mean that i filles my mapping test with the same data coming into MONI  by filling all the segments coming into XI its executing successfully in mapping test.
       but  when i tried to trigger an idoc from we19 or from bd54 i am facing this error. can any one please let me know what else i can do for running  this scenario. let me know your comments.
    Thanks
    Ramana.

    Hi friends, I am getting the following error. On the sender side we dont need to take care of the structure because we will be importing the IDOC from the application system directly. on the receiver side i have created the structure for the data base. the mapping is running  fine in my mapping test. still i am not getting what else i need to do. please comment on this.
      <SAP:Code area="MAPPING">EXCEPTION_DURING_EXECUTE</SAP:Code>
      <SAP:P1>com/sap/xi/tf/_MessageMapping_</SAP:P1>
      <SAP:P2>com.sap.aii.utilxi.misc.api.BaseRuntimeException</SAP:P2>
      <SAP:P3>RuntimeException in Message-Mapping transformatio~</SAP:P3>
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>com.sap.aii.utilxi.misc.api.BaseRuntimeException thrown during application mapping com/sap/xi/tf/_MessageMapping_: RuntimeException in Message-Mapping transformatio~</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>

  • The topic of scoring to film with logic...

    Hello everyone,
    I wanted to get a little discussion started on the topic of scoring to picture and how people here do it with logic.
    My experience with this has been quite on the side of frustration, and I've always thought "wow--- is it really this dumb?.. It CAN'T be this dumb.."
    So, when I talk about scoring to film, the biggest issue is the scene change-- something might be building and building and tempos increasing and rising and rising, and then suddenly BAM.. scene change, slow ambient music... Then scene change, fast paced intense music... When dealing with creating music notation for something like this, it's especially important to make sure that the note events are strict in time and on the beat (quantized, etc) so that your scores make visual sense and players won't hate you. "Yeah-- umm this 32nd note really is a quarter note happening over here.. But.. You know how Logic is.."
    My thought always was-- if Logic just had a "create downbeat" operation, it would solve all of these problems. You could have a section of music that abruplty ends at Measure 175 on beat 2.7431 and force 2.7431 to become measure 176-- and then you could assign a new tempo, a new time signature, etc.
    Logic's manual likes to talk about using tempo operations to achieve this, but this is when I ask "is it REALLY that dumb?".. I mean to be required to have a zillion crazy tempo changes in order to bypass beat 2.7432 through the end of beat 4, just seems counter intuitive, non-user friendly, and completely non-musical.
    So... I am asking, how do you guys feel about this, and how do you deal with it.. Am I the only one who thinks this is dumb?
    -patrick

    There has been no improvement or change in automation behavior between 7.x and 8.x, unfortunately. If anything the behavior has gotten buggier/worse in L8. But that's a different story and not related to what I mentioned previously about beat mapping.
    Automation data is time-stamped when it's written; but if you change the tempo after the fact, the spacing between notes will either compress or expand. Therefore, automation data (TBA, track-based automation) is "malleable" with respect to tempo changes. This actually makes sense to a certain extent, but it's not a good paradigm for automation to operate under when you've got automation data associated with specific regions. To put it more simply, if you lock a region and there's automation associated with it, the region will be locked but not the automation data.
    The workaround, as you hinted at, is to convert your TBA automation data to region-based automation data (RBA) prior to commencing tempo change operations. This is exactly what I do in this case, and it's become a regular part of my routine. It's kind of a PITA process, but absolutely necessary if you want to preserve your automation data prior to commencing any edits to the tempo.
    The procedure is to create an additional track for every track in your arrangement. If you're doing big orchestral stuff, for example, you may have dozens if not hundreds of tracks, maybe within folders, etc. That's where the "PITA" part comes in. But anyway, once you have a duplicate of every track in the arrangement, use the pencil tool to create a blank region on once of those tracks. Extend that region to go a little beyond the end of the arrangement. Use the color palette to give it a color that's not used for any of the other regions in your arrangement (you'll see why soon).
    Copy that blank region to every single one of those duplicate tracks. Then, with one of those blank regions selected, use the "select similar color" key commands and all of the blank regions will now be selected. Then invoke the command to move all automation data to region data.
    Finally, Select-ALL and tjem SMPTE-lock all of the regions in your arrangement. At this point you can change tempo/commence beat mapping with impunity. (For S&G's, if not for safety, check the "protect MIDI" checkbox in beat mapping prior to doing any beat mapping operations).

  • Need your assistance in mapping Structure and Field in DME Tree

    Hello Friends - I need your help in "Mapping from structure field" in DME.
    In the existing format tree, It is mapped Structure as "FPAYP" and Field name "BNAME" to populate Company Code name in the Payment file.
    Now I am asked to change this to populate value either from OX02 or OX15.
    When Company Code name was maintained, It was maintained in short and in the address tab, Full name is maintained.
    Please let me know which Structue and Field I should assign to pull the value either from OX02 or OX15.
    Thanks for your help.

    Thanks a lot Henri/Lakshmi.
    I have maintained mapping procedure Sturecture/field - FPAYHX/AUST1 to get the CoCd name in the file. In AUST1, Length of the CoCd is more  than 18, and as per Bank format, It should be 18 characters in length.
    User is not happy that complete CoCd name is not populated in the file. He has come up with an alternative and shortened the CoCd name that needs to be populated in the file and suggested us to get the value into the payment file. We should not replace CoCd name with the name he suggested in OX02/OX15,FBZP.
    My doubt is that if there is any filed I can use to maintain the name he suggested and assign it in mapping procedure.
    Thanks

Maybe you are looking for

  • USB-6009 analog input at certain voltage

    i am using USB 6009 i want to use a certain voltage to activate something. i want to activate a pop up vi inside a case structure at a voltage of 2.9V. i want to de activate the case structure at a voltage of 0.13mV - 0.16mV . then the sub vi will cl

  • Original item cannot be found?

    I have sent several videos from my phone to my computer via email. I saved the videos to a folder on my desktop. Originally all the videos played. However, now I am getting an error message on about half of them which states: "The alias 'blah blah' c

  • Cannot type in Word 2011 for mac?? Help!

    Hi I recently bought an iMac PC and installed windows for mac.  when I open up word everything seems ok until i try typing and nothing happens??  At first I thought it had something to do with trying to edit a document from an old PC, but when trying

  • Where could I get more information about SetDialogGroupInfo?

    Hi, I'm trying to implement tabbed dialog on Windows by utilizing ADM suites. But I have no idea how to deal with sADMDialogGroup->SetDialogGroupInfo or sADMDialogGroup->SetTabGroup methods. ADM Reference Guide is not clear enough for me on how to ac

  • Missing email folder icon on BBT 9800 - Where did it go and how to return it back?

    Missing email folder icon on BBT 9800 - Where did it go? The email icon on my BB Torch 9800 just disappeared. If I type email in the search button it shows me the greyed out email icon but I can't get the icon back on to my homescreen. How do I get m