Key-lookup on SCD II does not generate complete outer join

Using OWB 10.2.0.3
In a mapping to populate a fact table, I have to join two source tables (inner join). After that I have to perform a number of lookups on dimension objects to retrieve the dimension keys I want to store in my fact table. These dimensions are all SCD type II. All lookups are performed on the detail level of each dimension.
In the generated code, the join condition is an outer join. However, the condition that OWB generates to determine the correct level of the dimension is an inner join:
SELECT
FROM
"TMI_CELLEN_ACT" "TMI_CELLEN_ACT",
"DIM_TMI_BESTEMMINGEN" "KL_DIM_TMI_BESTEMMINGEN"
WHERE
( "KL_DIM_TMI_BESTEMMINGEN"."BEST_CODE" (+) = "TMI_CELLEN_ACT"."BESTEMMINGSCODE" ) AND
( ( "KL_DIM_TMI_BESTEMMINGEN"."BEST_ID" IS NULL ) OR
( "KL_DIM_TMI_BESTEMMINGEN"."BEST_ID" = "KL_DIM_TMI_BESTEMMINGEN"."DIMENSION_KEY" ) ) AND
( ( "KL_DIM_TMI_BESTEMMINGEN"."EFFECTIVE_DATE" IS NULL ) OR
( ( "KL_DIM_TMI_BESTEMMINGEN"."EXPIRATION_DATE" IS NOT NULL ) AND
( TO_DATE ( trunc(sysdate) ) >= "KL_DIM_TMI_BESTEMMINGEN"."EFFECTIVE_DATE" ) AND
( TO_DATE ( trunc(sysdate) ) <= "KL_DIM_TMI_BESTEMMINGEN"."EXPIRATION_DATE" ) ) OR
( ( "KL_DIM_TMI_BESTEMMINGEN"."EXPIRATION_DATE" IS NULL ) AND
( TO_DATE ( trunc(sysdate) ) >= "KL_DIM_TMI_BESTEMMINGEN"."EFFECTIVE_DATE" ) ) )
In my case, this results in an empty data set.
When using ANSI sql, the 'level-conditions' are generated as a WHERE-clause, which also results in an empty data set. When this code is included in the LEFT OUTER JOIN clause, all my data is there.
What is going on here?
Thanks
Paul

The "clever" workaround is to use a joiner, which is the way we implement the key lookup. So simply use that.
To just explain why we limit the key-lookup. The main reason is that this operator is cardinality neutral. That means we always expect it to return one and only one row. If we give you too much flexibility we increase the risk of getting more than one row back which would break the logic for the mapping.
Hope this makes sense, but just go with the joiner.
Thanks,
Jean-Pierre

Similar Messages

  • OWB does not allow full outer join

    I got following error (twice) while validating my mapping: "VLD-1506: Invalid Expression: Mixing full and partial outer joins in one mapping is not supported".
    I have following join conditions in my mapping:
    1) INGRP1.DISTRICT_ID = INGRP2.DISTRICT_ID And INGRP1.CHARGE_PERIOD_ID = INGRP2.CHARGE_PERIOD_ID And INGRP1.UTL_ID = INGRP2.UTL_ID
    2) The same
    3) INGRP1.CHARGE_PERIOD_ID (+) = INGRP2.CHARGE_PERIOD_ID (+) And
    INGRP1.DISTRICT_ID (+) = INGRP2.DISTRICT_ID (+) And
    INGRP1.PROVIDER# (+) = INGRP2.PROVIDER# (+)
    I suppose there is not any partial joins here. I tried to make first and second conditions with full outer joins too:
    INGRP1.DISTRICT_ID (+) = INGRP2.DISTRICT_ID (+) And
    INGRP1.CHARGE_PERIOD_ID (+) = INGRP2.CHARGE_PERIOD_ID (+) And
    INGRP1.UTL_ID (+) = INGRP2.UTL_ID (+) And
    INGRP1.DISTRICT_ID IS NOT NULL And
    INGRP2.DISTRICT_ID IS NOT NULL
    If I do this, validation reports the same error, but six times instead of twice.
    If I remove outer joins OWB generates following mapping statement:
    MERGE
    /*+ APPEND PARALLEL(MMB$ACCOUNT, DEFAULT, DEFAULT) */
    INTO
    "MMB$ACCOUNT"
    USING
    (SELECT
    /*+ NO_MERGE */
    "INGRP1"."DISTRICT_ID" "DISTRICT_ID",
    DIC$TIME_RECODER."MONTH_ID" "MONTH_ID",
    "INGRP1"."PROVIDER#" "PROVIDER#",
    "INGRP1"."ACCOUNT_NO" "ACCOUNT_NO",
    "INGRP2"."ACCOUNT_NO" "ACCOUNT_NO_1"
    FROM "DIC$TIME_RECODER" DIC$TIME_RECODER,
    (SELECT
    /*+ DRIVING_SITE("AGG"."AGG_INPUT_SUBQUERY"."FC_CHARGES_1_GKH_REL2_GKH_STAR") */
    "AGG"."CHARGE_PERIOD_ID" "CHARGE_PERIOD_ID",
    "AGG"."DISTRICT_ID$0" "DISTRICT_ID",
    "AGG"."PROVIDER#$0" "PROVIDER#",
    "AGG"."ACCOUNT_NO$0" "ACCOUNT_NO"
    FROM (SELECT
    ("AGG_INPUT_SUBQUERY"."CHARGE_PERIOD_ID$0") "CHARGE_PERIOD_ID",
    ("AGG_INPUT_SUBQUERY"."DISTRICT_ID$1") "DISTRICT_ID$0",
    ("AGG_INPUT_SUBQUERY"."PROVIDER#$1") "PROVIDER#$0",
    COUNT(DISTINCT ("AGG_INPUT_SUBQUERY"."ACCOUNT_NO$1")) "ACCOUNT_NO$0"
    FROM (SELECT
    "INGRP1"."DISTRICT_ID" "DISTRICT_ID$1",
    "INGRP1"."CHARGE_PERIOD_ID" "CHARGE_PERIOD_ID$0",
    DM_UTILITIES_1_GKH_R14554."PROVIDER#" "PROVIDER#$1",
    "FC_CHARGES_1_GKH_REL2_GKH_STAR"."ACCOUNT_NO" "ACCOUNT_NO$1"
    FROM {"FC_CHARGES"@GKH_REL2_GKH_STAR} "FC_CHARGES_1_GKH_REL2_GKH_STAR",
    {"DM_UTILITIES"@GKH_REL2_GKH_STAR} DM_UTILITIES_1_GKH_R14554,
    (SELECT
    "DEDUP"."DISTRICT_ID$2" "DISTRICT_ID",
    "DEDUP"."CHARGE_PERIOD_ID$1" "CHARGE_PERIOD_ID",
    "DEDUP"."UTL_ID" "UTL_ID"
    FROM (SELECT
    DISTINCT
    "FC_CHARGES_GKH_REL2_GKH_STAR"."DISTRICT_ID" "DISTRICT_ID$2",
    "FC_CHARGES_GKH_REL2_GKH_STAR"."CHARGE_PERIOD_ID" "CHARGE_PERIOD_ID$1",
    "FC_CHARGES_GKH_REL2_GKH_STAR"."UTL_ID" "UTL_ID"
    FROM {"FC_CHARGES"@GKH_REL2_GKH_STAR} "FC_CHARGES_GKH_REL2_GKH_STAR" WHERE ( (MAP_DIC$ACCOUNT."DATE_START") <= coalesce ( "FC_CHARGES_GKH_REL2_GKH_STAR"."CHANGED_DATE_#" , "FC_CHARGES_GKH_REL2_GKH_STAR"."CREATED_DATE_#" ) )) "DEDUP" ) "INGRP1" WHERE ( "INGRP1"."DISTRICT_ID" = "FC_CHARGES_1_GKH_REL2_GKH_STAR"."DISTRICT_ID" ) AND
    ( "INGRP1"."CHARGE_PERIOD_ID" = "FC_CHARGES_1_GKH_REL2_GKH_STAR"."CHARGE_PERIOD_ID" ) AND
    ( "INGRP1"."UTL_ID" = "FC_CHARGES_1_GKH_REL2_GKH_STAR"."UTL_ID" ) AND
    ( ( DM_UTILITIES_1_GKH_R14554."UTL_ID" (+) = "INGRP1"."UTL_ID" ) )) "AGG_INPUT_SUBQUERY"
    GROUP BY
    ("AGG_INPUT_SUBQUERY"."DISTRICT_ID$1"), ("AGG_INPUT_SUBQUERY"."CHARGE_PERIOD_ID$0"), ("AGG_INPUT_SUBQUERY"."PROVIDER#$1")) "AGG" ) "INGRP1",
    (SELECT
    /*+ DRIVING_SITE("AGG_1"."AGG_INPUT_SUBQUERY$0"."FC_PAYMENTS_1_GKH_RE143940") */
    "AGG_1"."PROVIDER#$2" "PROVIDER#",
    "AGG_1"."DISTRICT_ID$3" "DISTRICT_ID",
    "AGG_1"."CHARGE_PERIOD_ID$2" "CHARGE_PERIOD_ID",
    "AGG_1"."ACCOUNT_NO$2" "ACCOUNT_NO"
    FROM (SELECT
    ("AGG_INPUT_SUBQUERY$0"."PROVIDER#$3") "PROVIDER#$2",
    ("AGG_INPUT_SUBQUERY$0"."DISTRICT_ID$4") "DISTRICT_ID$3",
    ("AGG_INPUT_SUBQUERY$0"."CHARGE_PERIOD_ID$3") "CHARGE_PERIOD_ID$2",
    COUNT(DISTINCT ("AGG_INPUT_SUBQUERY$0"."ACCOUNT_NO$3")) "ACCOUNT_NO$2"
    FROM (SELECT
    "INGRP1"."DISTRICT_ID" "DISTRICT_ID$4",
    "INGRP1"."CHARGE_PERIOD_ID" "CHARGE_PERIOD_ID$3",
    DM_UTILITIES_GKH_REL2_GKH."PROVIDER#" "PROVIDER#$3",
    "FC_PAYMENTS_1_GKH_RE143940"."ACCOUNT_NO" "ACCOUNT_NO$3"
    FROM {"FC_PAYMENTS"@GKH_REL2_GKH_STAR} "FC_PAYMENTS_1_GKH_RE143940",
    {"DM_UTILITIES"@GKH_REL2_GKH_STAR} DM_UTILITIES_GKH_REL2_GKH,
    (SELECT
    "DEDUP_1"."DISTRICT_ID$5" "DISTRICT_ID",
    "DEDUP_1"."CHARGE_PERIOD_ID$4" "CHARGE_PERIOD_ID",
    "DEDUP_1"."UTL_ID$0" "UTL_ID"
    FROM (SELECT
    DISTINCT
    "FC_PAYMENTS_GKH_REL2_GKH_STAR"."DISTRICT_ID" "DISTRICT_ID$5",
    "FC_PAYMENTS_GKH_REL2_GKH_STAR"."CHARGE_PERIOD_ID" "CHARGE_PERIOD_ID$4",
    "FC_PAYMENTS_GKH_REL2_GKH_STAR"."UTL_ID" "UTL_ID$0"
    FROM {"FC_PAYMENTS"@GKH_REL2_GKH_STAR} "FC_PAYMENTS_GKH_REL2_GKH_STAR" WHERE ( (MAP_DIC$ACCOUNT."DATE_START") <= coalesce ( "FC_PAYMENTS_GKH_REL2_GKH_STAR"."CHANGED_DATE_#" , "FC_PAYMENTS_GKH_REL2_GKH_STAR"."CREATED_DATE_#" ) )) "DEDUP_1" ) "INGRP1" WHERE ( "INGRP1"."DISTRICT_ID" = "FC_PAYMENTS_1_GKH_RE143940"."DISTRICT_ID" ) AND
    ( "INGRP1"."CHARGE_PERIOD_ID" = "FC_PAYMENTS_1_GKH_RE143940"."CHARGE_PERIOD_ID" ) AND
    ( "INGRP1"."UTL_ID" = "FC_PAYMENTS_1_GKH_RE143940"."UTL_ID" ) AND
    ( ( DM_UTILITIES_GKH_REL2_GKH."UTL_ID" (+) = "INGRP1"."UTL_ID" ) )) "AGG_INPUT_SUBQUERY$0"
    GROUP BY
    ("AGG_INPUT_SUBQUERY$0"."DISTRICT_ID$4"), ("AGG_INPUT_SUBQUERY$0"."CHARGE_PERIOD_ID$3"), ("AGG_INPUT_SUBQUERY$0"."PROVIDER#$3")) "AGG_1" ) "INGRP2" WHERE ( "INGRP1"."CHARGE_PERIOD_ID" = "INGRP2"."CHARGE_PERIOD_ID" ) AND
    ( "INGRP1"."DISTRICT_ID" = "INGRP2"."DISTRICT_ID" ) AND
    ( "INGRP1"."PROVIDER#" = "INGRP2"."PROVIDER#" ) AND
    ( ( DIC$TIME_RECODER."PERIOD_ID" (+) = "INGRP1"."CHARGE_PERIOD_ID" ) )
    ) "MERGEQUERY_325"
    ON (
    "MMB$ACCOUNT"."DISTRICT_ID" = "MERGEQUERY_325"."DISTRICT_ID" AND
    "MMB$ACCOUNT"."MONTH_ID" = "MERGEQUERY_325"."MONTH_ID" AND
    "MMB$ACCOUNT"."PROVIDER_ID" = "MERGEQUERY_325"."PROVIDER#" )
    WHEN NOT MATCHED THEN
    INSERT
    ("MMB$ACCOUNT"."DISTRICT_ID",
    "MMB$ACCOUNT"."MONTH_ID",
    "MMB$ACCOUNT"."PROVIDER_ID",
    "MMB$ACCOUNT"."QNT_CHARGED",
    "MMB$ACCOUNT"."QNT_PAID")
    VALUES
    ("MERGEQUERY_325"."DISTRICT_ID",
    "MERGEQUERY_325"."MONTH_ID",
    "MERGEQUERY_325"."PROVIDER#",
    "MERGEQUERY_325"."ACCOUNT_NO",
    "MERGEQUERY_325"."ACCOUNT_NO_1")
    WHEN MATCHED THEN
    UPDATE
    SET
    "QNT_CHARGED" = "MERGEQUERY_325"."ACCOUNT_NO",
    "QNT_PAID" = "MERGEQUERY_325"."ACCOUNT_NO_1";
    What does it mean? Is JOINER's full outer join is incompatible with KEY LOOKUP operator and KL should be replaced with WB_LOOKUP_NUM?

    Sanders,
    Key lookup always does a partial outer join. When the full outer join and partial outer join conditions are put together, there is no available syntax to facilitate it.
    The way to this to generate the join operator (with full outer join) first in a subquery, then generate the key lookup as the outer query. Or the other way around, first the key lookup then the full outer join. The important part is that the key lookup can't be merged into the FROM-list.
    So there are two workarounds. One is what you already pointed out, using WB_LOOKUP_NUM.
    The other is to explicitly spell out the key lookup logic in the mapping by introducing a join with the lookup table, like this.
    Change
    Table1
    .......... Join (w/ foj cond.) ---> KeyLookup
    Table2
    to
    Table1
    .......... Join (w/ foj cond)
    Table2 ........................ Join (w/ poj cond.) ---> Lookup table
    Nikolai Rochnik

  • URGENT: classgen does not generate complete classes

    The classes that classgen generates are not complete. For the following DTD:
    <?xml version='1.0' encoding='UTF-8' ?>
    <!ELEMENT Test (fname* , id*)>
    <!ELEMENT fname (#PCDATA)>
    <!ELEMENT id (#PCDATA)>
    creates routines to set, update and delete the PCDATA, but not a getter.
    This is a bug (major one)
    Thanks

    JAVA
    I was thinking to use Java binding and reflection, but not getter is killing my plans to use OracleXML
    Thanks

  • Designerd does not generate Order BY code for Sort Order on a lookup tabel column.

    I am setting the Sort Order on a column which is based on a lookup table.
    When generate the the module, designer does not generate the code for the Sort Order that I set on the lookup table column.
    Is there a work around for this problem or is there some thing else that needs to be done in designer to make it generate the order by clause?
    I will very much appreciate help.
    Regards
    Prasad.

    A bound lookup item, will be generated as a NON-database item in Forms. Designer generates an ORDER BY CLAUSE (a Forms Block property) for the ordering. But a NON-database item cannot be included in the ORDER BY CLAUSE.
    I used a stored function for ordering the lookup item.
    Best regards
    Harm van Zoest

  • Cancellation document does not generate Accounting document

    Hi Experts,
        I am facing an issue that when a Billing document is getting cancelled through workflow ,the billing document does not generate a accounting document .I tried debugging the issue to check it but could not find the root cause of the issue.
    In the code we are using 'BAPI_BILLINGDOC_CANCEL1 to cancel the billing document.
        How to find that the accounting documents are getting  generated from the corresponding billing documents correctly.
    Thanks&Regards,
    Praveen

    First of all, are you able to create S1 type cancellation document after you call the BAPI? If you are not even able to generate the cancel document, perhaps you are missing committing the BAPI after calling it by using BAPT_TRANSACTION_COMMIT.
    Also are you able to create cancellation and accounting document by calling the BAPI through a test ABAP program? First check it out before using it in your workflow.

  • Mailing the Report Output-Does not generating file name

    Dear Gurus,
           The below program fulfils the "mailing the report" requirement .it sends the out put as an attachment in XLS format.But one problem exists i.e.,it does not generate  filename.It gives the filename as ".XLS"(DOT XLS).
    What should be done that system generates a filename?
    *& Report  ZTESTMAIL                                                   *
    REPORT  ZTESTMAIL                               .
    tables: ekko.
    parameters: p_email type somlreci1-receiver.
    types: begin of t_ekpo,
    ebeln type ekpo-ebeln,
    ebelp type ekpo-ebelp,
    aedat type ekpo-aedat,
    matnr type ekpo-matnr,
    end of t_ekpo.
    data: it_ekpo type standard table of t_ekpo initial size 0,
    wa_ekpo type t_ekpo.
    types: begin of t_charekpo,
    ebeln(10) type c,
    ebelp(5) type c,
    aedat(8) type c,
    matnr(18) type c,
    end of t_charekpo.
    data: wa_charekpo type t_charekpo.
    data: it_message type standard table of solisti1 initial size 0
    with header line.
    data: it_attach type standard table of solisti1 initial size 0
    with header line.
    data: t_packing_list like sopcklsti1 occurs 0 with header line,
    t_contents like solisti1 occurs 0 with header line,
    t_receivers like somlreci1 occurs 0 with header line,
    t_attachment like solisti1 occurs 0 with header line,
    t_object_header like solisti1 occurs 0 with header line,
    w_cnt type i,
    w_sent_all(1) type c,
    w_doc_data like sodocchgi1,
    gd_error type sy-subrc,
    gd_reciever type sy-subrc.
    t_object_header = 'Text.xls'. append t_object_header.
    *START_OF_SELECTION
    start-of-selection.
    Retrieve sample data from table ekpo
    perform data_retrieval.
    Populate table with detaisl to be entered into .xls file
    perform build_xls_data_table.
    *END-OF-SELECTION
    end-of-selection.
    Populate message body text
    perform populate_email_message_body.
    Send file by email as .xls speadsheet
    perform send_file_as_email_attachment
    tables it_message
    it_attach
    using p_email
    'Example .xls documnet attachment'
    'XLS'
    'PO'
    changing gd_error
    gd_reciever.
    Instructs mail send program for SAPCONNECT to send email(rsconn01)
    perform initiate_mail_execute_program.
    *& Form DATA_RETRIEVAL
    Retrieve data form EKPO table and populate itab it_ekko
    form data_retrieval.
    select ebeln ebelp aedat matnr
    up to 10 rows
    from ekpo
    into table it_ekpo.
    endform. " DATA_RETRIEVAL
    *& Form BUILD_XLS_DATA_TABLE
    Build data table for .xls document
    form build_xls_data_table.
    *CONSTANTS: con_cret TYPE x VALUE '0D', "OK for non Unicode
    *con_tab TYPE x VALUE '09'. "OK for non Unicode
    *If you have Unicode check active in program attributes thnen you will
    *need to declare constants as follows
    *class cl_abap_char_utilities definition load.
    constants:
    con_tab type c value cl_abap_char_utilities=>horizontal_tab,
    con_cret type c value cl_abap_char_utilities=>cr_lf.
    concatenate 'EBELN' 'EBELP' 'AEDAT' 'MATNR'
    into it_attach separated by con_tab.
    concatenate con_cret it_attach into it_attach.
    append it_attach.
    loop at it_ekpo into wa_charekpo.
    concatenate wa_charekpo-ebeln wa_charekpo-ebelp
    wa_charekpo-aedat wa_charekpo-matnr
    into it_attach separated by con_tab.
    concatenate con_cret it_attach into it_attach.
    append it_attach.
    endloop.
    endform. " BUILD_XLS_DATA_TABLE
    *& Form SEND_FILE_AS_EMAIL_ATTACHMENT
    Send email
    form send_file_as_email_attachment tables pit_message
    pit_attach
    using p_email
    p_mtitle
    p_format
    p_filename
    p_attdescription
    p_sender_address
    p_sender_addres_type
    changing p_error
    p_reciever.
    data: ld_error type sy-subrc,
    ld_reciever type sy-subrc,
    ld_mtitle like sodocchgi1-obj_descr,
    ld_email like somlreci1-receiver,
    ld_format type so_obj_tp ,
    ld_attdescription type so_obj_nam ,
    ld_attfilename type so_obj_des ,
    ld_sender_address like soextreci1-receiver,
    ld_sender_address_type like soextreci1-adr_typ,
    ld_receiver like sy-subrc.
    ld_email = p_email.
    ld_mtitle = p_mtitle.
    ld_format = p_format.
    ld_attdescription = p_attdescription.
    ld_attfilename = p_filename.
    ld_sender_address = p_sender_address.
    ld_sender_address_type = p_sender_addres_type.
    Fill the document data.
    w_doc_data-doc_size = 1.
    Populate the subject/generic message attributes
    w_doc_data-obj_langu = sy-langu.
    w_doc_data-obj_name = 'SAPRPT'.
    w_doc_data-obj_descr = ld_mtitle .
    w_doc_data-sensitivty = 'F'.
    Fill the document data and get size of attachment
    clear w_doc_data.
    read table it_attach index w_cnt.
    w_doc_data-doc_size =
    ( w_cnt - 1 ) * 255 + strlen( it_attach ).
    w_doc_data-obj_langu = sy-langu.
    w_doc_data-obj_name = 'SAPRPT'.
    w_doc_data-obj_descr = ld_mtitle.
    w_doc_data-sensitivty = 'F'.
    clear t_attachment.
    refresh t_attachment.
    t_attachment[] = pit_attach[].
    Describe the body of the message
    clear t_packing_list.
    refresh t_packing_list.
    t_packing_list-transf_bin = space.
    t_packing_list-head_start = 1.
    t_packing_list-head_num = 0.
    t_packing_list-body_start = 1.
    describe table it_message lines t_packing_list-body_num.
    t_packing_list-doc_type = 'RAW'.
    append t_packing_list.
    Create attachment notification
    t_packing_list-transf_bin = 'X'.
    t_packing_list-head_start = 1.
    t_packing_list-head_num = 1.
    t_packing_list-body_start = 1.
    describe table t_attachment lines t_packing_list-body_num.
    t_packing_list-doc_type = ld_format.
    t_packing_list-obj_descr = ld_attdescription.
    t_packing_list-obj_name = ld_attfilename.
    t_packing_list-doc_size = t_packing_list-body_num * 255.
    append t_packing_list.
    Add the recipients email address
    clear t_receivers.
    refresh t_receivers.
    t_receivers-receiver = ld_email.
    t_receivers-rec_type = 'U'.
    t_receivers-com_type = 'INT'.
    t_receivers-notif_del = 'X'.
    t_receivers-notif_ndel = 'X'.
    append t_receivers.
    call function 'SO_DOCUMENT_SEND_API1'
    exporting
    document_data = w_doc_data
    put_in_outbox = 'X'
    sender_address = ld_sender_address
    sender_address_type = ld_sender_address_type
    commit_work = 'X'
    importing
    sent_to_all = w_sent_all
    tables
    object_header = t_object_header
    packing_list = t_packing_list
    contents_bin = t_attachment
    contents_txt = it_message
    receivers = t_receivers
    exceptions
    too_many_receivers = 1
    document_not_sent = 2
    document_type_not_exist = 3
    operation_no_authorization = 4
    parameter_error = 5
    x_error = 6
    enqueue_error = 7
    others = 8.
    Populate zerror return code
    ld_error = sy-subrc.
    Populate zreceiver return code
    loop at t_receivers.
    ld_receiver = t_receivers-retrn_code.
    endloop.
    endform.
    *& Form INITIATE_MAIL_EXECUTE_PROGRAM
    Instructs mail send program for SAPCONNECT to send email.
    form initiate_mail_execute_program.
    wait up to 2 seconds.
    submit rsconn01 with mode = 'INT'
    with output = 'X'
    and return.
    endform. " INITIATE_MAIL_EXECUTE_PROGRAM
    *& Form POPULATE_EMAIL_MESSAGE_BODY
    Populate message body text
    form populate_email_message_body.
    refresh it_message.
    it_message = 'Please find attached a list test ekpo records'.
    append it_message.
    endform. " POPULATE_EMAIL_MESSAGE_BODY
    Your suggestions will be appreciated and rewarded.
    Thanks in advance
    Murali

    Hi
    Your pgm is not passing anything in obj_descr in packing list for excel file. If you pass a name your excel file will have that.
    Regards
    Sathar
    perform send_file_as_email_attachment
    tables it_message
    it_attach
    using p_email
    'Example .xls documnet attachment'
    'XLS'
    'PO'
    ' '  *------> no value*
    changing gd_error
    gd_reciever.
    form send_file_as_email_attachment tables pit_message
    pit_attach
    using p_email
    p_mtitle
    p_format
    p_filename
    p_attdescription *----> no value*
    p_sender_address
    p_sender_addres_type
    changing p_error
    p_reciever.
    t_packing_list-obj_descr = ld_attdescription.

  • The RFUMSV50 program does not generate transfer lines of deferred VAT

    Hello;
    The RFUMSV50 program does not generate transfer lines of deferred VAT ,
    The context is the following one:
    Code VAT Created with code target VAT, general account of VAT also created,
    Rule of deferred VAT created and activated for the company code in question, with marks to compensate for check.
    The data of tests are the following ones:
    Creation of an invoice via the FB60,
    Integral payment of the invoice via F-53,
    Creation of the confirmation of the operation in bank via the manual statement FF67,
    Clearing of the intermediate banking account  with the bank account  via F-03.
    After all these elements, by executing the RFUMSV50 program, I have nothing in result.
    There somebody who had the same problem, could help us?
    Thank you.

    Hi
    Service Tax credit cannot be utilized unless the Vendor Invoice is Paid. This is the reason till the payment is done the service tax Amount will be accumulated in deferred tax account and once the invoice is paid the balance in deferred tax is need to be transferred  to respective Service Tax , Educational Cess and higher Education Cess account. There can be various business scenarios for full and Partial Payment to facilitates the transfer of such deferred balance to respective account SAP has come up with some new standard program RFUMSV50 instead of RFUMSV25. To overcome the limitation of this program i.e. not able to take care of more than one tax line item, below the solution is provided with scenarios “Full Payment is made to Vendor Invoice”. 
    hope this is help ful
    thanks
    Trinath

  • SQR does not generate PDF file

    Hi,
    on F9 with 8.49 tools on a Win 2003 server , the SQR does not generate PDF, but only nnnnn.out and nnnnn.log files.
    What might be the reason ? What should be verified ?
    Thank you.

    Hi ...
    the table that uses the output file type is PS_PRCSOUTPUTFILE , lokk into this table...
    (or)
    login to PIA ...
    navigate to peopletools--process scheduler--system settings--process type--process output type.
    select sqr and see type web and active and default are checked.
    Then navigate to process output format (the next tab to the previous one)
    then select process type sqr and output destination type web are selected...
    then u should see *.pdf is active and default... if not make it default...
    reconfigure the process scheduler(bounce the scheduler and clear cache).
    that should give u pdf doc....
    any questions... please update
    Thnks!

  • In other words jQuery mobile does not generate code with result can not test Apps in dw cs6

    from the time compiled in phonegap dw c6 tools and tested from dw the App in Android sdk, for a jQuery mobile App the, code in split/Live is the same as split/Live/Live Code.... in other words jQuery mobile does not generate code with result can not test Apps in dw cs6, but design shown without jQ mobile generated code, well?

    well, jQuery mobile stopped to generate code with result can not test Apps in dw cs6, but design shown without jQ mobile generated code, well (neither generated code seems nor design as seem in mobile)....????

  • Matrixx 7 autocode does not generate ucb and subsystem wrapper for "procedures" code style

    Under matrixx 6.1.3  when procedure style code generation is specified  (-procs), autocode generates subsystem and ucb style wrappers (see below):
    Executing the command:   
    autostar -l c -o "test.c" -d "/usr/local/apps/matrixx-6.1.3/solaris_mx_61.3/case/ACC/templates/c_sim.dac" -procs "test.rtf"   
    *        AutoCode/C       Code Generator V6.1           *
    *      (C) Copyright 1998.  Integrated Systems Inc.     *
    *      Unpublished work; Restricted rights apply.       *
    *      All rights reserved.  Portions U.S. Patent.      *
    Loading 'test.rtf' ...
    Initializing ...
    Processing names ...
    Building symbols ...
    Executing '/usr/local/apps/matrixx-6.1.3/solaris_mx_61.3/case/ACC/templates/c_sim.dac' :
                 Generating procedures declarations ...
                 Generating procedures definitions ...
                 Generating subsystem-style wrapper (subsys_1)
                 around procedure tt1 ...
                 Generating UCB-style wrapper(s) around procedure(s) ...
    Output generated in test.c.
    However, matrixx 7.1.4 does not generate the wrappers. see below :
    Executing the command:   
    autostar -l c -o "test.c" -d "/data/binaries/SUN8/apps/matrix714/solaris_mx_71.4/case/ACC/templates/c_sim.dac" -procs "test.rtf"   
    *           AutoCode/C       Code Generator V7.1               *
    *  (c) Copyright 1987-2004.  National Instruments Corporation  *
    *          All rights reserved.  Portions U.S. Patent.         *
    Loading 'test.rtf' ...
    Initializing ...
    Processing names ...
    Building symbols ...
    Executing '/data/binaries/SUN8/apps/matrix714/solaris_mx_71.4/case/ACC/templates/c_sim.dac' :
                 Generating internal procedure declarations ...
                 Generating procedures definitions ...
                 Generating MAKEFILE in test.mk
    Output generated in test.c.
    Code generation complete.
    Please note that the autocode user's guide for matrixx7 indicates that these wrappers are generated when -procs is specified.
    -procs: Sets the template parameter procs_only_b as True, and default template only generates Procedure SuperBlocks and generates UCBsand subsystem wrappers for each of these procedures.  
    Is ther a way to create the same behavior under matrixx7 when -procs option is used?
    Thanks

    Hello,
    These wrappers were separated into different templates.  What you would need to do is to run the templates that you need. You can find these templates in the C:\Program Files\National Instruments\MATRIXx\mx_71.4\case\ACC\templates folder.
    Hope this helps.
    Ricardo S.
    National Instruments

  • Keys fn fn (or other) does not activate the dictation only functions "Edit" "Start Dictation .... on MacBook Pro, Please give me the solution Thanks.

    keys fn fn (or other) does not activate the dictation only functions "Edit" "Start Dictation .... on MacBook Pro, Please give me the solution
    Thanks

    Welcome to Apple Support Communities
    It's possible that Dictation is set up to be turned on with a different key. Open System Preferences > Dictation & Speech, and choose the key you want to use to activate Dictation next to "Shortcut". Read > http://support.apple.com/kb/ht5449

  • I need to re-download Lion and install it. Holding the Option key while clicking on "purchases" does not work.

    I need to re-download Lion and install it, after re-formatting my hard-drive to "journaled" as requested. Holding the Option key while clicking on "purchases" does not work.

    Thanks Smokemonster. I found that the Lion install app was in in my applications folder already. Worked fine.

  • FP08M error: Key for G/L accounting does not exist

    Hi,
    I am receiving this error message 'Key for G/L accounting does not exist' when trying to reverse document using t-code FP08M. If you could help me understand the error message, and maybe a way of getting the document reversed I would really appreciate it.
    Thank you!

    Hi,
    Such GL issues arise due to incomplete entries in TFK033D table.

  • TS3274 I  working in Citrix and the keyboard does note generate. How can I get it to work?

    I  working in Citrix and the keyboard does note generate. How can I get it to work?

    Close all open apps by double-tapping the home button, then swiping upward on the app window (not the smaller icon) off the screen.
    Then reset: hold down the home button along with the power button until you see the Apple, then let go.

  • Assigned F key to play an action does not work. Why? Using cs6  iMac and wireless key board

    Assigned F key to play an action does not work to play the action on an image. When the F key is selected it seams to control computer attributes rather than the play action assigned in photoshop. Why? Using cs6  iMac and wireless key board.
    Is this a possible preference setting in mac or is it a setting in cs6 photoshop ? Help and knowledge will be appreciated.

    *** Moderator Action ***
    This networking question has been moved from the Solaris 10 discussion space,
    to the Solaris Networking discussion space, for closer topic alignment.
    Whereas there may be IPV6 nuances specific to your Solaris 10 environment and to the hardware, this appears to be a discussion that may be more global in effect.

Maybe you are looking for

  • Error in transporting the Transformation to Quality system

    Hi All, I am trying to transport the transformation which has field level routine as well as start and end routine. I have basically ehanced the standard routine and it works perfectly fine in dev server . I have even loaded the data and generated re

  • USB Audio Device Not Recognized by Stream 7 tablet

    Half the reason I bought the Stream 7 was to use it has a music player with my iBaso D2 USB Audio DAC Headdphone Amp. The device is recognnized by my Win 8.1 desktop and every other computer I've plugged it into.  Why it is not recognized as an audio

  • Modify control record and send out to external (TAMA) system using ALE

    Hi All, I have a scenario to send idoc from ECC 5.0 to 3.1R/3 and then to TAMA system (external system-through TRFC) In the inbound process code of 3.1R/3, I have to write a custom FM to modify the control record and point to TAMA system and then sen

  • First iPhone- dummy question

    OK, how does on *remove an item from the Dock and replace it with another one?* I tried dragging it off, clicking on it, double-clicking, poofing, and "settings". I'd like to take Safari (won't be doing a lot of surfing from the phone) off the Dock a

  • Itunes error 4280 and 4450

    I am incurring the same symptoms as many others have posted about. The playlist is fine, not too long, the songs have never been copied before, and all have either came from ITunes or from a purchased CD. I try to burn the playlist and before it even