XI IDoc complex mapping problem - help needed!

Hi all,
I am mapping WPUBON IDoc (sent as IDoc XML file) to WPUBON IDoc in R/3. However, I have a complex mapping requirement that I am trying to use the graphical tool for.
Source segment structure is such that we have:
E1WPB01 (header) has one or many E1WPB02 (items) and E1WPB05 (coupons).
E1WPB02 (items) have one or many E1WPB03 (item conditions).
So for each IDoc, we can have many items (E1WPB02), each item can have many conditions (E1WPB03) and each IDoc can have many coupons (E1WPB05).
For each E1WPB05 received, we need to take the value and divide it proportionately in order to add an extra E1WPB03 discount condition segment to each E1WPB02 item (we are a retailer and this will allow us to break down customer coupon discounts across each item in the basket). For example, if we have 2 E1WPB02 items with values $2 and $3 and the coupon is worth $1, item 1 needs a new E1WPB03 segment with a value of $0.40 and item 2 needs one with a value of $0.60.
This process needs to occur for each E1WPB05 segment (customers could have more than one coupon). No E1WPB05 segments are required in the target IDoc.
I have tried a few things but really am a bit stuck on where to start.... any ideas anyone?
Thankyou.
Stuart Richards

Stefan,
Here's some sample source XML:
<?xml version="1.0" encoding="UTF-8"?>
<WPUBON01>
   <IDOC>
      <EDI_DC40>
         <TABNAM>EDI_DC40</TABNAM>
         <MANDT>104</MANDT>
         <DOCNUM/>
         <DOCREL>620</DOCREL>
         <DIRECT>2</DIRECT>
         <IDOCTYP>WPUBON01</IDOCTYP>
         <MESTYP>WPUBON</MESTYP>
         <MESCOD>ST6</MESCOD>
         <SNDPOR>WPUX</SNDPOR>
         <SNDPRT>KU</SNDPRT>
         <SNDPRN>0799</SNDPRN>
         <RCVPOR>SAPRD1</RCVPOR>
         <RCVPRT>KU</RCVPRT>
         <RCVPRN>0799</RCVPRN>
         <REFINT>00000000000016</REFINT>
      </EDI_DC40>
      <E1WPB01 SEGMENT="1">
         <POSKREIS>0001</POSKREIS>
         <KASSID>1</KASSID>
         <VORGDATUM>20060107</VORGDATUM>
         <VORGZEIT>134512</VORGZEIT>
         <BONNUMMER>120572</BONNUMMER>
         <KASSIERER>4400</KASSIERER>
         <CSHNAME> </CSHNAME>
         <BELEGWAERS>GBP</BELEGWAERS>
         <E1WPB02 SEGMENT="2">
            <VORGANGART/>
            <QUALARTNR>ARTN</QUALARTNR>
            <ARTNR>000005034394436881</ARTNR>
            <VORZEICHEN>-</VORZEICHEN>
            <MENGE>1</MENGE>
            <REFBONNR> </REFBONNR>
            <E1WPB03 SEGMENT="3">
               <VORZEICHEN/>
               <KONDITION>PN10</KONDITION>
               <KONDVALUE>10.00</KONDVALUE>
               <CONDID/>
               <QUALCONDID/>
            </E1WPB03>
         </E1WPB02>
         <E1WPB02 SEGMENT="5">
            <VORGANGART/>
            <QUALARTNR>ARTN</QUALARTNR>
            <ARTNR>000005034394471158</ARTNR>
            <VORZEICHEN>-</VORZEICHEN>
            <MENGE>1</MENGE>
            <REFBONNR> </REFBONNR>
            <E1WPB03 SEGMENT="6">
               <VORZEICHEN/>
               <KONDITION>PN10</KONDITION>
               <KONDVALUE>20.00</KONDVALUE>
               <CONDID/>
               <QUALCONDID/>
            </E1WPB03>
         </E1WPB02>
         <E1WPB02 SEGMENT="8">
            <VORGANGART/>
            <QUALARTNR>ARTN</QUALARTNR>
            <ARTNR>000005034394469131</ARTNR>
            <VORZEICHEN>-</VORZEICHEN>
            <MENGE>1</MENGE>
            <REFBONNR> </REFBONNR>
            <E1WPB03 SEGMENT="9">
               <VORZEICHEN/>
               <KONDITION>PN10</KONDITION>
               <KONDVALUE>30.00</KONDVALUE>
               <CONDID/>
               <QUALCONDID/>
            </E1WPB03>
         </E1WPB02>
         <E1WPB05 SEGMENT="11">
            <VORZEICHEN>+</VORZEICHEN>
            <RABATTART>PTCS</RABATTART>
            <RABVALUE>6.00</RABVALUE>
         </E1WPB05>
         <E1WPB06 SEGMENT="11">
            <VORZEICHEN>+</VORZEICHEN>
            <ZAHLART>PTCS</ZAHLART>
            <SUMME>10.00</SUMME>
            <KARTENNR/>
            <ZUONR>120572</ZUONR>
         </E1WPB06>
      </E1WPB01>
   </IDOC>
</WPUBON01>
So we have one coupon worth $6.00. We have 3 items in the basket worth $10, $20 and $30 respectively. The additional E1WPB03 for each will need to contain $1, $2 and $3 respectively to give:
<?xml version="1.0" encoding="UTF-8"?>
<WPUBON01>
   <IDOC>
      <EDI_DC40>
         <TABNAM>EDI_DC40</TABNAM>
         <MANDT>104</MANDT>
         <DOCNUM/>
         <DOCREL>620</DOCREL>
         <DIRECT>2</DIRECT>
         <IDOCTYP>WPUBON01</IDOCTYP>
         <MESTYP>WPUBON</MESTYP>
         <MESCOD>ST6</MESCOD>
         <SNDPOR>WPUX</SNDPOR>
         <SNDPRT>KU</SNDPRT>
         <SNDPRN>0799</SNDPRN>
         <RCVPOR>SAPRD1</RCVPOR>
         <RCVPRT>KU</RCVPRT>
         <RCVPRN>0799</RCVPRN>
         <REFINT>00000000000016</REFINT>
      </EDI_DC40>
      <E1WPB01 SEGMENT="1">
         <POSKREIS>0001</POSKREIS>
         <KASSID>1</KASSID>
         <VORGDATUM>20060107</VORGDATUM>
         <VORGZEIT>134512</VORGZEIT>
         <BONNUMMER>120572</BONNUMMER>
         <KASSIERER>4400</KASSIERER>
         <CSHNAME> </CSHNAME>
         <BELEGWAERS>GBP</BELEGWAERS>
         <E1WPB02 SEGMENT="2">
            <VORGANGART/>
            <QUALARTNR>ARTN</QUALARTNR>
            <ARTNR>000005034394436881</ARTNR>
            <VORZEICHEN>-</VORZEICHEN>
            <MENGE>1</MENGE>
            <REFBONNR> </REFBONNR>
            <E1WPB03 SEGMENT="3">
               <VORZEICHEN/>
               <KONDITION>PN10</KONDITION>
               <KONDVALUE>10.00</KONDVALUE>
               <CONDID/>
               <QUALCONDID/>
            </E1WPB03>
<b>           <E1WPB03 SEGMENT="9">
               <VORZEICHEN/>
               <KONDITION>PN10</KONDITION>
               <KONDVALUE>1.00</KONDVALUE>
               <CONDID/>
               <QUALCONDID/>
            </E1WPB03></b>
         </E1WPB02>
         <E1WPB02 SEGMENT="5">
            <VORGANGART/>
            <QUALARTNR>ARTN</QUALARTNR>
            <ARTNR>000005034394471158</ARTNR>
            <VORZEICHEN>-</VORZEICHEN>
            <MENGE>1</MENGE>
            <REFBONNR> </REFBONNR>
            <E1WPB03 SEGMENT="6">
               <VORZEICHEN/>
               <KONDITION>PN10</KONDITION>
               <KONDVALUE>20.00</KONDVALUE>
               <CONDID/>
               <QUALCONDID/>
            </E1WPB03>
<b>           <E1WPB03 SEGMENT="9">
               <VORZEICHEN/>
               <KONDITION>PN10</KONDITION>
               <KONDVALUE>2.00</KONDVALUE>
               <CONDID/>
               <QUALCONDID/>
            </E1WPB03></b>
         </E1WPB02>
         <E1WPB02 SEGMENT="8">
            <VORGANGART/>
            <QUALARTNR>ARTN</QUALARTNR>
            <ARTNR>000005034394469131</ARTNR>
            <VORZEICHEN>-</VORZEICHEN>
            <MENGE>1</MENGE>
            <REFBONNR> </REFBONNR>
            <E1WPB03 SEGMENT="9">
               <VORZEICHEN/>
               <KONDITION>PN10</KONDITION>
               <KONDVALUE>30.00</KONDVALUE>
               <CONDID/>
               <QUALCONDID/>
            </E1WPB03>
<b>           <E1WPB03 SEGMENT="9">
               <VORZEICHEN/>
               <KONDITION>PN10</KONDITION>
               <KONDVALUE>3.00</KONDVALUE>
               <CONDID/>
               <QUALCONDID/>
            </E1WPB03></b>
         </E1WPB02>
         <E1WPB06 SEGMENT="11">
            <VORZEICHEN>+</VORZEICHEN>
            <ZAHLART>PTCS</ZAHLART>
            <SUMME>10.00</SUMME>
            <KARTENNR/>
            <ZUONR>120572</ZUONR>
         </E1WPB06>
      </E1WPB01>
   </IDOC>
</WPUBON01>
The 3 new segments required are highlighted in bold. Note that coupon segment can be repeating but is not required in the target message.
Cheers

Similar Messages

  • Interesting problem - Help Needed

    I am currently working on developing a report that has a cross tab layout. The number of columns are arbitrary and decided at run time. I am trying to create a
    report template. The XML feed for the report has the following structure
    <group name="SETTLE_INFO" source="settlementlvl">
         <element name="SETTLE_DATE" value="umb_settlement_date"/>
         <element name="BANK_NAME" value="bank_name"/>
         <element name="PRODUCT_NAME" value="product_name"/>
         <element name="PRODUCT_LVL_TOTAL_BAL" value="prtdlvl_balance"/>
         <element name="PRODUCT_LVL_TOTAL_ACCNTS" value="prtdlvl_account_count"/>
    </group>
    Here each settlement date may have many banks having many product levels. I am trying to summarize this information in a cross tab report which has the following structure:
    For each settlement date (row) -> for each group of Banks(column) -> for each group of products under each Bank(column) -> display total summation of bal and accounts for each product (cell).
    How do I generate these multiple levels of dynamic columns at run time?
    Ashwin

    Thanks for your help. I am able to generate columns at run time but my problem is a bit more complex.
    I have to generated a table structure like following:
    | UMB Settlement Date | Bank Name1 | Bank Name2 |
    | ------------------------------------------------------------------------------------------------------------------
    | | Product Name1 | Product Name2 | Product Name1 | Product Name2 | Product Name3 |
    |--------------------------------------------------------------------------------------------------------------------------------------------------
    The problem that I am facing is that I am not able to get the desired structure like this, i.e encapsulating the products columns under the bank column.
    My RTF template look like the following:
    UMB Settlement Date <?horizontal-break-table:1?> |     <?for-each-group@column:SETTLE_INFO;./BANK_NAME?><?BANK_NAME?><?end for-each-group?> |
    | <?for-each-group@column:SETTLE_INFO;./BANK_NAME?><?variable@incontext:G3;BANK_NAME?><?for-
    | each-group@column://SETTLE_INFO;./PRODUCT_NAME?><?if: count(current-group()
    | [BANK_NAME=$G3])?><?PRODUCT_NAME?><?end if?><?end for-each-group?><?end for-each-group?>
    --------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------
    The bank header column and the product header column are out of sync. How do I make sure that the product name column is contained within the header of the bank name column.
    Please let me know if you need more information about this.
    Ashwin

  • Mapping conversion help needed for date

    Hi Experts,
    I need help in message mapping convesion for date field
    The source date field can have value '2010-06-04T02:09:59.610-07:00' or 2010-06-04T02:09:60.610-07:00
    I have to change it to '2010-06-04T02:09:59.000-07:00'. ie, if the seconds are 59.XXX, or 60.XXX, then change to 59.000.
    Please let me know the best way to do this
    Thanks
    Mike

    Again, to make it more clear
    The source date field can have any date value such as
      2010-06-04T02:09:59.610-07:00 -
    This needs to be changed to 2010-06-04T02:09:59.000-07:00
      2010-06-04T02:09:60.610-07:00 -- This needs to be changed to 2010-06-04T02:09:59.000-07:00
    2010-06-04T02:09:60.000-07:00 -- This needs to be changed to 2010-06-04T02:09:59.000-07:00
    2010-06-04T02:09:59.000-07:00  - This need not be changed
    2010-06-04T02:09:58.610-07:00 -- This need not be changed
    2010-06-04T02:09:57.610-07:00  etc etc - These need not be changed.
    The only change using date function is for the first two dates, in which 59.XXX and 60.XXX need to be replaced with  59.000
    Using the above date function, all the seconds 59.XXX, 58.XXX, 60.XXX, etc etc,,, are converted to 59.000, 58.000 and 60.000
    I dont need this as per the requirement. So looks like the UDF needs to be altered a little to accomodate my requirement.
    Please help me.
    Thanks
    Mike

  • JDBC to IDOC scenario - Mapping problem with E1FIBSEG

    Hi friends,
    I have problem when generate multiple Idocs (FIDCC1) an multiple positions based on an External Definition for a SQL Server table. I have selected all fields from this table from a SELECT into the JDBC configuration.
    My mapping is like this:
    DWCAJA.ResultSet  1..1
         IDOC.
    Thats ok and generate n IDOCs by every change of PK.
    The problem is when i want to map positions because i dont have any field in source message to identify the number of positions to map with E1FISEG.
    If I have two differents Pks and n rows, the result of testing is as folow:
    FIDCC1
      IDOC
         E1FIKPF
             E1FISEG
             E1FISEG
      IDOC
            E1FIKPF
    I cant obtain n BSEG segments according PK. I've mapped and all fields of row segment but those are created in the first IDOC node only,
    Any suggestions?
    Regards,
    Pablo.-

    Important: Primary key : DWSucCod + DWCajSec
    Payload:
    - <row>
      <DWSucCod>11</DWSucCod>
      <DWCajSec>1</DWCajSec>
      <DWCtaConCo>1100001</DWCtaConCo>
      <DWRecImp>100</DWRecImp>
      </row>
    - <row>
      <DWSucCod>11</DWSucCod>
      <DWCajSec>1</DWCajSec>
      <DWCtaConCo>1100002</DWCtaConCo>
      <DWRecImp>200</DWRecImp>
      </row>
    Result:
    IDOC
       E1FIKPF
         E1FISEG
             hkont :1100001
             dmbtr : 100
         E1FISEG
              hkont :1100002
             dmbtr : 200
    Payload:
    - <row>
      <DWSucCod>11</DWSucCod>
      <DWCajSec>1</DWCajSec>
      <DWCtaConCo>1100002</DWCtaConCo>
      <DWRecImp>200</DWRecImp>
      </row>
    - <row>
      <DWSucCod>12</DWSucCod>
      <DWCajSec>1</DWCajSec>
      <DWCtaConCo>1100003</DWCtaConCo>
      <DWRecImp>300</DWRecImp>
      </row>
    Result:
    IDOC
       E1FIKPF
         E1FISEG
             hkont :1100002
             dmbtr : 200
    IDOC
       E1FIKPF
         E1FISEG
             hkont :1100001
             dmbtr : 300
    Payload:
    - <row>
      <DWSucCod>11</DWSucCod>
      <DWCajSec>1</DWCajSec>
      <DWCtaConCo>1100001</DWCtaConCo>
      <DWRecImp>100</DWRecImp>
      </row>
    - <row>
      <DWSucCod>11</DWSucCod>
      <DWCajSec>1</DWCajSec>
      <DWCtaConCo>1100002</DWCtaConCo>
      <DWRecImp>200</DWRecImp>
      </row>
    - <row>
      <DWSucCod>12</DWSucCod>
      <DWCajSec>1</DWCajSec>
      <DWCtaConCo>1100003</DWCtaConCo>
      <DWRecImp>300</DWRecImp>
      </row>
    Result:
    IDOC
       E1FIKPF
         E1FISEG
             hkont :1100001
             dmbtr : 100
         E1FISEG
             hkont :1100002
             dmbtr : 200
    IDOC
       E1FIKPF
         E1FISEG
             hkont :1100003
             dmbtr : 300

  • Linked lists problem -- help needed

    Hello again. I've got yet another problem in my C++ course that stems from my use of a Mac instead of Windows. I'm going to install Parallels so I can get Windows on my MacBook and install Visual Studio this week so that I don't have to deal with these discrepancies anymore, but in the meanwhile, I'm having a problem here that I don't know how to resolve. To be clear, I've spent a lot of time trying to work this out myself, so I'm not just throwing this up here to have you guys do the work for me -- I'm really stuck here, and am coming here as a last resort, so I'll be very, very appreciative for any help that anyone can offer.
    In my C++ course, we are on a chapter about linked lists, and the professor has given us a template to make the linked lists work. It comes in three files (a header, a source file, and a main source file). I've made some adjustments -- the original files the professor provided brought up 36 errors and a handful of warnings, but I altered the #include directives and got it down to 2 errors. The problematic part of the code (the part that contains the two errors) is in one of the function definitions, print_list(), in the source file. That function definition is shown below, and I've marked the two statements that have the errors using comments that say exactly what the errors say in my Xcode window under those two statements. If you want to see the entire template, I've pasted the full code from all three files at the bottom of this post, but for now, here is the function definition (in the source file) that contains the part of the code with the errors:
    void LinkedList::printlist( )
    // good for only a few nodes in a list
    if(isEmpty() == 1)
    cout << "No nodes to display" << endl;
    return;
    for(CURSOR = FRONT_ptr; CURSOR; CURSOR = CURSOR-> link)
    { cout << setw(8) << CURSOR->name; } cout << endl; // error: 'setw' was not declared in this scope
    for(CURSOR = FRONT_ptr; CURSOR; CURSOR = CURSOR-> link)
    { cout << setw(8) << CURSOR->test_grade; } cout << endl; // error: 'setw' was not declared in this scope
    As you can see, the problem is with the two statements that contain the 'setw' function. Can anyone help me figure out how to get this template working and get by these two errors? I don't know enough about linked lists to know what I can and can't mess with here to get it working. The professor recommended that I try using 'printf' instead of 'cout' for those two statements, but I don't know how to achieve the same effect (how to do whatever 'setw' does) using 'printf'. Can anyone please help me get this template working? Thank you very, very much.
    For reference, here is the full code from all three files that make up the template:
    linkedlist.h (header file):
    #ifndef LINKED_LINKED_H
    #define LINKED_LINKED_H
    struct NODE
    string name;
    int test_grade;
    NODE * link;
    class Linked_List
    public:
    Linked_List();
    void insert(string n, int score);
    void remove(string target);
    void print_list();
    private:
    bool isEmpty();
    NODE *FRONT_ptr, *REAR_ptr, *CURSOR, *INSERT, *PREVIOUS_ptr;
    #endif
    linkedlist.cpp (source file):
    #include <iostream>
    using namespace std;
    #include "linkedlist.h"
    LinkedList::LinkedList()
    FRONT_ptr = NULL;
    REAR_ptr = NULL;
    PREVIOUS_ptr = NULL;
    CURSOR = NULL;
    void Linked_List::insert(string n, int score)
    INSERT = new NODE;
    if(isEmpty()) // first item in List
    // collect information into INSERT NODE
    INSERT-> name = n;
    // must use strcpy to assign strings
    INSERT -> test_grade = score;
    INSERT -> link = NULL;
    FRONT_ptr = INSERT;
    REAR_ptr = INSERT;
    else // else what?? When would this happen??
    // collect information into INSERT NODE
    INSERT-> name = n; // must use strcpy to assign strings
    INSERT -> test_grade = score;
    REAR_ptr -> link = INSERT;
    INSERT -> link = NULL;
    REAR_ptr = INSERT;
    void LinkedList::printlist( )
    // good for only a few nodes in a list
    if(isEmpty() == 1)
    cout << "No nodes to display" << endl;
    return;
    for(CURSOR = FRONT_ptr; CURSOR; CURSOR = CURSOR-> link)
    { cout << setw(8) << CURSOR->name; } cout << endl; // error: 'setw' was not declared in this scope
    for(CURSOR = FRONT_ptr; CURSOR; CURSOR = CURSOR-> link)
    { cout << setw(8) << CURSOR->test_grade; } cout << endl; // error: 'setw' was not declared in this scope
    void Linked_List::remove(string target)
    // 3 possible places that NODES can be removed from in the Linked List
    // FRONT
    // MIDDLE
    // REAR
    // all 3 condition need to be covered and coded
    // use Trasversing to find TARGET
    PREVIOUS_ptr = NULL;
    for(CURSOR = FRONT_ptr; CURSOR; CURSOR = CURSOR-> link)
    if(CURSOR->name == target) // match
    { break; } // function will still continue, CURSOR will
    // mark NODE to be removed
    else
    { PREVIOUS_ptr = CURSOR; } // PREVIOUS marks what NODE CURSOR is marking
    // JUST before CURSOR is about to move to the next NODE
    if(CURSOR == NULL) // never found a match
    { return; }
    else
    // check each condition FRONT, REAR and MIDDLE
    if(CURSOR == FRONT_ptr)
    // TARGET node was the first in the list
    FRONT_ptr = FRONT_ptr -> link; // moves FRONT_ptr up one node
    delete CURSOR; // deletes and return NODE back to free memory!!!
    return;
    }// why no need for PREVIOUS??
    else if (CURSOR == REAR_ptr) // TARGET node was the last in the list
    { // will need PREVIOUS for this one
    PREVIOUS_ptr -> link = NULL; // since this node will become the last in the list
    REAR_ptr = PREVIOUS_ptr; // = REAR_ptr; // moves REAR_ptr into correct position in list
    delete CURSOR; // deletes and return NODE back to free memory!!!
    return;
    else // TARGET node was the middle of the list
    { // will need PREVIOUS also for this one
    PREVIOUS_ptr -> link = CURSOR-> link; // moves PREV nodes' link to point where CURSOR nodes' points
    delete CURSOR; // deletes and return NODE back to free memory!!!
    return;
    bool Linked_List::isEmpty()
    if ((FRONT_ptr == NULL) && (REAR_ptr == NULL))
    { return true; }
    else
    { return false;}
    llmain.cpp (main source file):
    #include <iostream>
    #include <string>
    #include <iomanip>
    using namespace std;
    #include "linkedlist.h"
    int main()
    Linked_List one;
    one.insert("Angela", 261);
    one.insert("Jack", 20);
    one.insert("Peter", 120);
    one.insert("Chris", 270);
    one.print_list();
    one.remove("Jack");
    one.print_list();
    one.remove("Angela");
    one.print_list();
    one.remove("Chris");
    one.print_list();
    return 0;

    setw is the equivalent of the field width value in printf. In your code, the printf version would look like:
    printf("%8s", CURSOR->name.c_str());
    I much prefer printf over any I/O formatting in C++. See the printf man page for more information. I recommend using Bwana: http://www.bruji.com/bwana/
    I do think it is a good idea to verify your code on the platform it will be tested against. That means Visual Studio. However, you don't want to use Visual Studio. As you have found out, it gets people into too many bad habits. Linux is much the same way. Both development platforms are designed to build anything, whether or not it is syntactically correct. Both GNU and Microsoft have a long history of changing the language standards just to suit themselves.
    I don't know what level you are in the class, but I have a few tips for you. I'll phrase them so that they answers are a good exercise for the student
    * Look into const-correctness.
    * You don't need to compare a bool to 1. You can just use bool. Plus, any integer or pointer type has an implicit cast to bool.
    * Don't reuse your CURSOR pointer as a temporary index. Create a new pointer inside the for loop.
    * In C++, a struct is the same thing as a class, with all of its members public by default. You can create constructors and member functions in a struct.
    * Optimize your function arguments. Pass by const reference instead of by copy. You will need to use pass by copy at a later date, but don't worry about that now.
    * Look into initializer lists.
    * In C++ NULL and 0 are always the same.
    * Return the result of an expression instead of true or false. Technically this isn't officially Return Value Optimization, but it is a good habit.
    Of course, get it running first, then make it fancy.

  • Layout Problem, Help Need

    I developed one custom Report, which will print on pre print stationary. Really Problem here is when i send to printer it will printer properly on 8/12 By 11 Page, but i don't what is the reason it is not printing on Page after 7 Inch, even i thought i increase layout width it dos't Print after 7 Inch on Page, can i know why it is doing like these, any clue, please let me know.
    Report Verions : 6i
    Main Section : Width => 8.5
    Height => 12.5
    Orientation => Portrait
    Report Width => 80
    Report Height => 90
    Your Help Rally appreicate in advance.
    Thanks,
    Praveen

    You may need to contact support and actually show them the report to really solve the problem, but here are a few things to check first:
    a) Check the report margins, make sure that they will allow the report body to display past 7".
    b) Check that the frames and repeating frames are set to horizontally variable, or expand so that they can grow if required.
    Hope this helps,
    Danny

  • 9i Developer suite login problem. help needed ASAP

    i installed oracle 9i developer suite, my problem is i can't login. this is the error ora12560: TNS: oracle adapter error.
    or
    if i put the hostname it displays a no listener error and closes. i tried to create a listener in net configuration assistant, but i can't see it in services.
    i'm using windows XP. and not conneted to any machine.
    do i need any changes on my window settings?
    please help...
    thanks
    here is my listener.ora
    ABC =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = abc)(PORT = 1521))
    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = abc)(PORT = 1521))
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = C:\OraHome)
    (PROGRAM = extproc)
    tnsnames.ora
    TEST.ABC =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ABC)(PORT = 1521))
    (CONNECT_DATA =
    (SERVICE_NAME = test.ABC)
    ORACLE =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = abc)(PORT = 1521))
    (CONNECT_DATA =
    (SERVICE_NAME = oracle)

    check your operating system network protocole is TCP/IP is installed if so check is there any problem with these protocoles. this error is encounter generally due operating system network protocoles it is not an oracle error. here is discription.
    TNS-12560 TNS:protocol adapter error
    Cause: A generic protocol adapter error occurred.
    Action: Check addresses used for proper protocol specification. Before reporting this error, look at the error stack and check for lower level transport errors.For further details, turn on tracing and re-execute the operation. Turn off tracing when the operation is complete.

  • (  jrew.exe encounterd problem,help needed  )

    MY DEARS
    I AM FACING A PROBLEM ON MY P4 LAPTOP AND DESKTOP COMPUTOR ON A PRGRAMM ON SURGERY CD ,WHICH ON START UP DIPLAYS MESSAGE ( jrew encountered a problem,needs to close-)
    WHAT IS THE SOLUTION .HELP IS APPERECIATED.
    MANY REGARDS FOR HELPER.
    DR QAMAR

    Hi Jamie,
    The install log looks fine, but the last entry was September 9th.  I suspect the crash is occuring before the new log entries can be made. 
    Could you please open a new bug report on this over at bugbase.adobe.com?  We'll want to get a crash dump so we can try to figure out what might be causing this to happen.  You didn't mention what OS you were running, but I found this tech doc on the net that describes how do generate the .dmp file:
    Creating Dr. Watson crash dumps
    Thanks,
    Chris

  • Multiple problems - help needed please

    I've got so many problems that I've completely confused myself. So, if anyone can help….
    I was previously using a D-Link D-320T DSL modem on BT Broadband in the UK. The modem was set up in bridge mode, and hooked up via ethernet to my Airport Extreme (n). The AEBS would use PPPoE and successfully connected to the internet, as well as handling all my network needs.
    Everything worked and everything was fine, allowing screen sharing and file sharing between my Mac Mini, MacBook and MacBook Pro.
    Earlier this week, the internet connection dropped and I couldn't find the cause. Resetting the router and hooking it up directly to my Mac Mini, I connected to it (192.168.1.1) and had it connect to the internet itself.
    It did so, and distributed IP addresses to the Mac Mini…but after 30 seconds my internet connection dropped, and looking in network preferences, I found that the modem had jumped from a router address of 192.168.1.1, to an 82.xx.xx.xx address, which was clearly the public IP address forwarded by my ISP. So it seemed like it was working in a sort of bridge mode still.
    I reset the router numerous times, tried switching it into full bridge mode etc, but the AEBS was unable to use it to connect via PPPoE as before, because the D-Link would play nice for 30 seconds, then jump around with addresses.
    Very strange, but I assumed the modem was just broken.
    I dug out my spare router, being the Netgear DG632.
    I managed to get this hooked up to the internet really quickly, and using an ethernet connection to the Mac Mini, it all appeared fine. However, as I started looking around the internet, I noticed that although google.com would open up, any subsequent links, and indeed any other domains I tried to visit would not open.
    Resetting the router seemed to solve this.
    I then hooked up my AEBS to the Netgear and, after pondering which way to use it, I found the only way I could get it to play nice was to have the AEBS in bridge mode itself, meaning that the Netgear would do all the routing work.
    The MacBook connected to the airport, and all seemed okay….
    …However, I then noticed that the internet connection would randomly drop. Web pages would not open (in any browser), and downloads which were under way could be seen in the Safari download manager to suddenly crash.
    The same was true on the Mac Mini - web browsing stopped at random. I had however hooked this up to the airport via an ethernet cable, I noticed that, although the "internet" wasn't working, other connections like torrents were still active.
    Reconnecting the Netgear router directly to the Mac Mini allowed me to see in its diagnostics that it still held a connection to the ISP and still had an external IP address.
    Again, a reset of the router seemed to resolve things….but only for a few hours. And whilst the Mac Mini seemed resilient, the airport connection to the MacBook was terrible. (I haven't even tried using the MBP yet).
    Furthermore, I noticed that networking between devices had severely been crippled. Although the Mac Mini and MacBook were visible to each other in the shared devices section of finder, clicking the link meant waiting literally four minutes for a connection to establish, and screen sharing timed out, from either direction.
    I then tried assigning everything static IP addresses, but this seemed to confuse matters with the router.
    Under the impression that the Netgear clearly couldn't handle the job of routing my network, I tried to set it up in bridge mode and use the AEBS as before.
    Reading around the internet (on my iPhone at this stage), I realised there was no obvious "bridge mode" option, but I was told to set the device mode as router, and then say "no" when it asks if there are any login details for the ISP (under Basic Router Settings). This was done.
    However, setting up the AEBS with PPPoE had no success, and the connection was never made.
    At this stage, I'm living with a crippled network and two routers, neither of which do what I want.
    Can anybody advise me on a solution to fix either router/modem?
    I want to use the modem in bridge mode and have the AEBS handle everything as before, as it was perfect.
    At this stage, which a frazzled brain (after messing with everything for several hours), something step-by-step would be great.
    Help! (and thanks)

    I have also recently developed problems with my airport network. I was playing my air tunes when it started freezing so i reset my airport extreme and expresses. When I tried to setup my networks again I en counted problems like airport utility couldn't find the extreme base station or when it did it couldn't read the setting. I eventually managed to create a network then when i tried to connect to the network it either asks for the password (even though its saved in keychain) When I enter the password it keeps saying "connection time out". I then turn airpot off & on and it the sometimes reconnects automatically without requiring a password.
    My internet then will sometime start working again but then drop out completely or take an age to load.
    The network will then sometimes disappear from the network list and I'm unable to see it at all.
    No matter how many time i reset the base station it doesn't make a difference.
    I my broadband modem is also a wireless router and Im experiencing similar problems with that. I took my laptop to work and tried to connect to the network at work and it seems to work ok except it did ask for a password the time out but did it only once.
    I did download a security update recently but im not sure if its that that is causing it
    please help me as well as I'm stuck without my network

  • Basic java problem help needed please

    the problem is :
    to produce a program which will show membership rates for a golf club..
    membership yearly rate new member joining fee
    category
    full 650 3000
    associate 200
    ladies 350 2000
    under 18 175
    new members must pay a joining fee in addition to the yearly rate as shown
    full/ladies members also prepay 150
    write a program which will enter details of members,calculate and output the total amount each member should pay.
    output number of members in each category
    the total income for each category....
    i need this program to show each category individually...cant do it at all..been at it a week....must be me && and || signs...i think...plz can someone help me as im really stuck now...thank you so much..
    import java.util.Scanner;
    public class assignmentquestion3 {
    public static Scanner key=new Scanner(System.in);
    public static void main(String []args){
    int fullfee=800,newfullfee=3800,associatefee=200,newla diesfee= 2350,ladiesfee= 350,under18fee = 175;
    int selectcat=0;
    int reply = 0;
    int addmember=0;
    int currentfulltotalmem=0,newfulltotalmem=0,associatet otalmem=0,ladiestotalmem=0,under18totalmem=0;
    int assoctotalcash=0,ladiestotalcash=0,under18totalcas h=0;
    int fullprepay=150;
    int ladiesfull=2500;
    int completefull = 0;
    int ladiescurrent=500;
    int under18=175;
    //Main introduction screen for the user and selections available. do while loops only allowing numbers 1,2,3 or 4.
    do{
    do{
    System.out.printf("\n\t %90s","********************Membership Rates For The Golf Club********************");
    System.out.printf("\n\n %105s","This program will allow users to enter details of members as well as calculating and.");
    System.out.printf("\n%106s","outputing the total amount each member should pay. The program allows users to view the");
    System.out.printf("\n%106s","total number of members in each category and the total income for each category.");
    System.out.printf("\n\n\t %75s","Please select your membership category: ");
    System.out.printf("\n\n\t %68s","Please press '1' for FULL");
    System.out.printf("\n\n\t %68s","Please press '2' for ASSOCIATE");
    System.out.printf("\n\n\t %68s","Please press '3' for LADIES");
    System.out.printf("\n\n\t %68s","Please press '4' for UNDER 18");
    System.out.printf("\n\n\t %68s","Please enter 1,2,3 or 4: ");
    selectcat=key.nextInt();
    }while (selectcat>4 || selectcat<1);
    do{
    System.out.printf("\n\n\t %75s","Are you a Current Member (press 1) or a New Member (press 2): ");
    reply=key.nextInt();
    }while (reply<1 || reply>2);
    //if number '1' for 'FULL' category is selected by the user and reply is 'yes'(1) then new full member fee is shown to user
    if (selectcat==1 ||reply==1)
    System.out.printf("\n\n\t %68s","CURRENT FULL MEMBERSHIP SELECTED");
    System.out.printf("\n\n\t %68s","Current full membership fees yearly are "+fullfee+"");
    System.out.printf("\n\n\t %68s","Full members must also pre-pay "+fullprepay+" on a card can be used in the club facilities such as bar and shop ");
    System.out.printf("\n\n\t %72s","The total of this membership is: "+fullfee+"");
    currentfulltotalmem=currentfulltotalmem+1;
    System.out.printf("\n\n\t %72s","The total number of 'CURRENT FULL MEMBERSHIPS = "+currentfulltotalmem+"");
    completefull=completefull+fullfee;
    System.out.printf("\n\n\t %68s","The total amount of income for 'FULL MEMBERSHIPS' within the club = "+completefull+"");
    //if number '1' is selected by the user and reply is 'no' (2) then full member fee is shown to user
    else if (selectcat==1 &&reply==2)
    System.out.printf("\n\n\t %68s","NEW FULL MEMBERSHIP SELECTED");
    System.out.printf("\n\n\t %68s","Full membership fees yearly are "+newfullfee+"");
    newfulltotalmem=newfulltotalmem+1;
    System.out.printf("\n\n\t %68s","The total number of 'NEW FULL MEMBERSHIPS = "+newfulltotalmem+"");
    completefull=completefull+newfullfee;
    System.out.printf("\n\n\t %68s","The total amount of income for 'FULL MEMBERSHIPS' within the club = "+completefull+"");
    //if number '2' is selected by the user then associate member fee is shown to user
    if (selectcat==2 &&(reply==1 || reply==2))
    System.out.printf("\n\n\t %75s","ASSOCIATE MEMBERSHIP SELECTED");
    System.out.printf("\n\n\t %75s","ASSOCIATE membership fees yearly are "+associatefee+"");
    associatetotalmem=associatetotalmem+1;
    System.out.printf("\n\n\t %75s","The total number of 'ASSOCIATE MEMBERSHIPS' WITHIN THE CLUB = "+associatetotalmem+"");
    assoctotalcash=assoctotalcash+associatefee;
    System.out.printf("\n\n\t %68s","The total amount of income for 'ASSOCIATE MEMBERSHIPS' within the club = "+assoctotalcash+"");
    //if number '3' is selected by the user and reply is 'yes' then new ladies member fee is shown to user
    if (selectcat==3 &&reply==1)
    System.out.printf("\n\n\t %68s","LADIES CURRENT MEMBERSHIP SELECTED");
    System.out.printf("\n\n\t %68s","Ladies full membership fees yearly are "+ladiesfee+"");
    System.out.printf("\n\n\t %68s","Ladies must also pre-pay "+fullprepay+" on a card can be used in the club facilities such as bar and shop ");
    System.out.printf("\n\n\t %68s","The total of this membership is: "+ladiescurrent+"");
    ladiestotalmem=ladiestotalmem+1;
    System.out.printf("\n\n\t %75s","The total number of 'LADIES MEMBERSHIPS' WITHIN THE CLUB = "+ladiestotalmem+"");
    ladiestotalcash=ladiestotalcash+ladiescurrent;
    System.out.printf("\n\n\t %68s","The total amount of income for 'LADIES MEMBERSHIPS' within the club = "+ladiestotalcash+"");
    //if number '3' is selected by the user and reply is 'no' then the current ladies member fee is shown to user
    else
    if (selectcat==3 && reply==2)
    System.out.printf("\n\n\t %68s","LADIES NEW MEMBERSHIP SELECTED");
    System.out.printf("\n\n\t %68s","LADIES NEW MEMBERSHIP fees yearly are "+newladiesfee+"");
    System.out.printf("\n\n\t %68s","Ladies must also pre-pay "+fullprepay+" on a card can be used in the club facilities such as bar and shop ");
    System.out.printf("\n\n\t %68s","The total of this membership is: "+ladiesfull+"");
    ladiestotalmem=ladiestotalmem+1;
    System.out.printf("\n\n\t %75s","The total number of 'LADIES MEMBERSHIPS' within the club = "+ladiestotalmem+"");
    ladiestotalcash=ladiestotalcash+ladiesfull;
    System.out.printf("\n\n\t %68s","The total amount of income for 'LADIES MEMBERSHIPS' within the club = "+ladiestotalcash+"");
    //if number '4' is selected by the user then under 18 member fee is shown to user
    else if (selectcat==4 &&(reply==1||reply==2))
    System.out.printf("\n\n\t %75s","UNDER 18 MEMBERSHIP SELECTED");
    System.out.printf("\n\n\t %75s","UNDER 18 yearly membership fees are "+under18fee+"");}
    System.out.printf("\n\n\t %68s","The total of this membership is: "+under18+"");
    under18totalmem=under18totalmem+1;
    System.out.printf("\n\n\t %75s","The total number of 'UNDER 18 MEMBERSHIPS' within the club = "+under18totalmem+"");
    under18totalcash=under18totalcash+under18;
    System.out.printf("\n\n\t %68s","The total amount of income for 'UNDER 18 MEMBERSHIPS' within the club = "+under18totalcash+"");
    //allowing user to select '0' to add another member or any other key to exit program
    System.out.printf("\n\n\t %68s","Please Press '0' to add another member or any other key to exit.: ");
    addmember=key.nextInt();
    }while (addmember==0 ||addmember>1);}}
    the problem im having is whenever i make the choices 1,2,3,4 (CATEgorys) AND hit 1 or 2(current or new member selections) it brings up more than one category...
    for example when i hit 1(Category full) and 1(current member)..it displays this:
    Are you a Current Member (press 1) or a New Member (press 2): 1
    CURRENT FULL MEMBERSHIP SELECTED
    Current full membership fees yearly are 800
    Full members must also pre-pay 150 on a card can be used in the club facilities such as bar and shop
    The total of this membership is: 800
    The total number of 'CURRENT FULL MEMBERSHIPS = 1
    The total amount of income for 'FULL MEMBERSHIPS' within the club = 800
    The total of this membership is: 175
    The total number of 'UNDER 18 MEMBERSHIPS' within the club = 1
    The total amount of income for 'UNDER 18 MEMBERSHIPS' within the club = 175
    Please Press '0' to add another member or any other key to exit.:
    under 18 membership as well?...does this for other selections too...is it my arithmetic operators?....my if loops?...

    Multi-post [http://forums.sun.com/thread.jspa?threadID=5346248&messageID=10498270#10498270]
    And it still doesn't compile.

  • SQL problem - help needed ASAP!!

    Hey guys,
    Doing a college project... would really appreciate some help. I am trying to use a variable in the where clause of a select cursor in PL/SQL. The code is this:
    procedure results(p_search_entry varchar2, p_search_field varchar2) is
    cursor c_results is
    select * from physics_b where p_search_field = p_search_entry;
    begin
    for cv_results in c_results
    loop
    -- loop through actions
    end loop;
    The problem is that I don't know how to get the where clause to accept the variable passed into the procedure as the field name. Does anyone know the syntax for this?
    Thanks very much!
    Niall

    This isn't the correct forum for this kind of question. The SQL and PL/SQL forum PL/SQL is probably best.
    That said, you can't do what you want that way.
    You can do
    procedure results (p_search_entry in varchar2)
    cursor c_result is
    select * fro physics_b where subject=p_search_entry;(assuming subject is a column in physics_b)
    You can't use a variable to represent a column directly. You need to build the statement as a string and then use execute immediate.
    statement:='select * fro physics_b where '||p_search_field||' = :1';
    -- this bit is probably bad syntax.
    execute immediate statement using p_search_entry;Look up execute immediate and bind variables

  • Trigonometry problem- help needed big time!

    Hello, thanks for clicking. I am filling in a Flash template
    for a client- and the template purchased turned out to be in
    Spanish. I don't speak more than 2-3 words of Spanish and I'm stuck
    in one place. I don't think Spanish is required to solve the
    problem, if you're already good at trig. Can someone please help me
    out?
    Here is what I need to fix. The "rollaround" menu at the top
    of the page here-
    http://www.rollwiththetank.com/l2
    is not lining up correctly when the 3rd, 4th, and 5th menu
    buttons are clicked. Try them out and see what I mean. If this code
    was in english I know I would be able to crack it, but as it is I'm
    stumped.
    Here is the code controlling the rollaround-
    Thanks to anyone who can help clue me in on what I'm
    missing.

    http://translation2.paralink.com/
    for the comments anyways....
    Sorry I don't speak Spanish either, this is where I go when I
    need it

  • Audio Console Problem - Help Need

    Hey everyone.
    I'm having a problem here with my creative audio console. I have a Soundblaster Audigy 2 Value series. I've been using this card for about month now and everything has been working great. I've been using the latest beta drivers since i got the card and i've had no problems. I'm using the latest audio console too and it's great. I need the console for the Advanced EQ settings.
    The problem is: I went into the console to change the EQ to 'rock' but when i accessed the 'EAX' tab, it was all blank, no settings, nothing. If i go to the 'speakers' tab, there is nothing to choose from also. Anyone got any idea what the problem is?
    Audio works fine, just not these features.
    I have had this problem occasionally before, but after a restart of windows, everything re-appears again. This time nothing is coming back after a restart.
    I've tried re-installing the drivers and console, but nothing works.
    Any help would be very greatly appreciated. I do love my Advanced EQ.
    Here is a few screenshots of what the console looks like:
    http://www.serenityindarkness.com/images/creativescrn.JPG
    http://www.serenityindarkness.com/images/creativescrn2.JPG

    I am thinking, the beta read me states, some audio console apps may not fuction. The only last resort thing I can think of is a 00% clean sweap. Unistall drivers and ALL media source ap
    ps.
    Also make sure to delete install sheild and delete C:\Program Files\Creative folder .
    Use driver cleaner after you uninstall drivers also, this is to remove all reg keys.
    In C:\Program Files folder you should have an installshield folder (hidden) in there are GUID named folders.
    Go through them all and any that have a reference to creative, delete the folder.
    Install your drivers and apps from the CD. Then update all the media source ap
    ps.
    Then update you driver. Do not uninstall the drivers though, just over right them and make sure to say yes to over right shared driver files.
    NOTE: When you update media source apps, use the auto updater.
    Before you do this though, as a test go to windows control panel and you should have audio HQ in here, open it and see if you can change EAX settings in here. If you can, then its just a bad install of media source ap
    ps.
    Hope this hel
    ps.

  • Calendar Problem- Help needed

    Hi:
    I have a google calendar but I did not use a Gmail account to set up the calendar. Instead, I used a pop account from my isp service provider- who is cogeco.ca
    I am trying to sync my google calndar to my Blackberry built in calendar. I can't seet to do it.
    Can someone give me the steps and the server addresses I would need to use.
    Thanks so much. I appreciate your help and time.
    MusicF

    MusicF wrote:
    Where it says "
    In the Server Address field, enterhttps://www.google.com/calendar/dav/<emailaddress>/events  where <emailaddress> is the Google email address.
    I don't have a google/gmail address. I have an ordinary email address from my isp. That's what I am using . Is that what I should be using in this step?
    Thank-you
    To use Google calendar, you typically have to have a google email address, for that is what goole uses to authenticate all of their services. If your ISP has some sort of relationship with google to provide, via your ISP, some google services, then you will need to inquire with your ISP as to how to use those, for that is a rather special situation, not covered by any of the normal methods. If your ISP does not have this special relationship with google, and you wish to use google for calendar, then you would need to create a google account.
    Occam's Razor nearly always applies when troubleshooting technology issues!
    If anyone has been helpful to you, please show your appreciation by clicking the button inside of their post. Please click here and read, along with the threads to which it links, for helpful information to guide you as you proceed. I always recommend that you treat your BlackBerry like any other computing device, including using a regular backup schedule...click here for an article with instructions.
    Join our BBM Channels
    BSCF General Channel
    PIN: C0001B7B4   Display/Scan Bar Code
    Knowledge Base Updates
    PIN: C0005A9AA   Display/Scan Bar Code

  • K430 Bad streaming problem - help needed

    Hello everyone,
    I wonder if any of you can help me or have had a similar problem.
    I bought a Lenovo Ideacentre K430 Desktop PC (Intel Core i7 3770 3.4GHz Processor, 16GB RAM, 2TB HDD, DVD, LAN, WLAN, Nvidia Graphics, Windows 8)  two months ago via Amazon and on the whole have been very pleased with it.
    However I have had a major problem when it comes to streaming video. For example, when watching TV programmes via BBC iPlayer it will stop after about 45 secs and say that there is insufficient bandwith.  Yet, when I run the BBC diagnostic it says the streaming speed is 3621 kbps and is sufficient.  (I have two laptops in the house and both of these stream video without any problems).  I also have the same problem when streaming video from other websites.  When using websites generally they seem to load quickly and also when downloading items it seems to do these jobs at a good speed: it is just when streaming it seems to have a problem and stops.
    I have even switched the K430 desktop to an ethernet cable to see if that helps - but the problem still persists. All the other devices in the house, i.e. iPhone, Wii, laptop all stream via the wi-fi without any problems.
    I'm not that technical , so any advice and suggestions would be greatly appreciated.
    many thanks,
    Matt

    hi Pikemonster,
    Welcome to the Forums.
    Just to verify, do you get the same issue if you stream via flash player using i.E., Chrome, or Firefox?
    http://www.bbc.co.uk/iplayer/tv
    Also, have you tried to adjust the video quality (i.e. medium, low, etcl)
    Regards
    Did someone help you today? Press the star on the left to thank them with a Kudo!
    If you find a post helpful and it answers your question, please mark it as an "Accepted Solution"! This will help the rest of the Community with similar issues identify the verified solution and benefit from it.
    Follow @LenovoForums on Twitter!

Maybe you are looking for