Joining the Tables VBAK and CDHDR
Hi All,
I am a novice to SAP, and probably have the most basic question. I need to join the two tables VBAK and CDHDR and I dont see any common fields between them.
I would need to do this for as generating a custom report that lists all the valid contracts created or changed within the period of selection. I also need to show the old value and the new value, the user ID of who made the change/creation and the date of the change.
Anyhelp in this regard is highly appreciated and will be rewarded appropriately.
Many thanks in anticipation.
CDHDR is used for each and every table of SAP, so don't look for common key with your table.
Look for records in CDHDR with OBJECTCLAS = 'VERKBELEG' and OBJECTID = VBAK-VBELN, and then in CDPOS with keys of CDHDR and tabname = 'VBAK' and tabkey = VBAK-VBELN. (You also get VBAP and other tables under the same Id)
Take a look at report RVSCD100
Regards
Similar Messages
-
How to use Innerjoin b/w these 2 tables VBAK and CDHDR ?
Hi,
How to use Innerjoin b/w these 2 tables VBAK and CDHDR for retrieving of changed sales order data ?I nned the A select stmt with INNER JOIN for changed sales data.
Thanks & Regards,
gopi.Hi Gopi,
You can use the code similar to below to read the changes to Sales order from CDHDR AND CDPOS
FORM GET_CHANGES .
* Get all the changes to Sales Order as well as Deliveries. Suppress
* Non relevant change
DATA : BEGIN OF SO_VBELN OCCURS 0 ,
VBELN LIKE CDHDR-OBJECTID,
END OF SO_VBELN.
DATA : BEGIN OF DL_VBELN OCCURS 0 ,
VBELN LIKE CDHDR-OBJECTID,
END OF DL_VBELN.
DATA TEMP_SO_VBELN LIKE SO_VBELN OCCURS 0 WITH HEADER LINE.
DATA DATE_UNTIL LIKE SY-DATUM.
DATA TIME_UNTIL LIKE SY-UZEIT .
DATA DATE_FROM LIKE SY-DATUM.
READ TABLE S_CHADT INDEX 1.
LOOP AT IT_VBAP.
AT NEW VBELN.
MOVE IT_VBAP-VBELN TO TEMP_SO_VBELN.
COLLECT TEMP_SO_VBELN.
ENDAT.
ENDLOOP.
IF TEMP_SO_VBELN[] IS NOT INITIAL.
SELECT OBJECTID AS VBELN FROM CDHDR
INTO TABLE SO_VBELN
FOR ALL ENTRIES IN TEMP_SO_VBELN
WHERE OBJECTCLAS EQ 'VERKBELEG'
AND OBJECTID EQ TEMP_SO_VBELN-VBELN
AND USERNAME IN S_CHABY
AND UDATE IN S_CHADT.
ENDIF.
LOOP AT IT_LIPS INTO WA_LIPS.
AT NEW VBELN.
MOVE WA_LIPS-VBELN TO DL_VBELN.
COLLECT DL_VBELN.
ENDAT.
ENDLOOP.
* Changes in Sales Order.
IF NOT SO_VBELN[] IS INITIAL.
* Get partner functions
SELECT * INTO TABLE IT_TPART
FROM TPART WHERE SPRAS EQ SY-LANGU.
SELECT A~TABNAME A~FIELDNAME A~DATATYPE B~DDTEXT
INTO CORRESPONDING FIELDS OF TABLE IT_FIELD
FROM DD03L AS A INNER JOIN
DD04T AS B
ON A~ROLLNAME EQ B~ROLLNAME
AND A~AS4LOCAL EQ B~AS4LOCAL
WHERE ( A~TABNAME EQ 'VBAK'
OR A~TABNAME EQ 'VBAP'
OR A~TABNAME EQ 'VBEP'
OR A~TABNAME EQ 'VBPA'
OR A~TABNAME EQ 'VBUK'
OR A~TABNAME EQ 'VBKD' )
AND A~AS4LOCAL EQ 'A'
AND A~AS4VERS EQ '0000'
AND A~ROLLNAME NE SPACE
AND B~DDLANGUAGE EQ SY-LANGU.
* Preapare the exclusion table
R_EXCL_FIELDS-OPTION = 'EQ'.
R_EXCL_FIELDS-SIGN = 'I'.
LOOP AT IT_FIELD WHERE DATATYPE EQ 'CURR'.
R_EXCL_FIELDS-LOW = IT_FIELD-FIELDNAME.
APPEND R_EXCL_FIELDS.
ENDLOOP.
R_EXCL_FIELDS-LOW = 'ARKTX'.
APPEND R_EXCL_FIELDS.
R_EXCL_FIELDS-LOW = 'LGORT'.
APPEND R_EXCL_FIELDS.
R_EXCL_FIELDS-LOW = 'TDDAT'.
APPEND R_EXCL_FIELDS.
R_EXCL_FIELDS-LOW = 'LDDAT'.
APPEND R_EXCL_FIELDS.
R_EXCL_FIELDS-LOW = 'MBDAT'.
APPEND R_EXCL_FIELDS.
R_EXCL_TABL-OPTION = 'EQ'.
R_EXCL_TABL-SIGN = 'I'.
R_EXCL_TABL-LOW = 'KONVC'.
APPEND R_EXCL_TABL.
R_EXCL_TABL-LOW = 'VBKD'.
APPEND R_EXCL_TABL.
LOOP AT SO_VBELN.
REFRESH ITAB_CDHDR.
DATE_FROM = S_CHADT-LOW.
DATE_UNTIL = S_CHADT-HIGH.
CALL FUNCTION 'CHANGEDOCUMENT_READ_HEADERS'
EXPORTING
DATE_OF_CHANGE = DATE_FROM
OBJECTCLASS = 'VERKBELEG'
OBJECTID = SO_VBELN-VBELN
TIME_OF_CHANGE = TIME_UNTIL
DATE_UNTIL = DATE_UNTIL
USERNAME = ' '
TABLES
I_CDHDR = ITAB_CDHDR
EXCEPTIONS
NO_POSITION_FOUND = 1
WRONG_ACCESS_TO_ARCHIVE = 2
TIME_ZONE_CONVERSION_ERROR = 3
OTHERS = 4.
IF SY-SUBRC NE 0.
CONTINUE.
ENDIF.
LOOP AT ITAB_CDHDR WHERE USERNAME IN S_CHABY.
REFRESH IT_CDSHW.
CALL FUNCTION 'CHANGEDOCUMENT_READ_POSITIONS'
EXPORTING
CHANGENUMBER = ITAB_CDHDR-CHANGENR
TABLES
EDITPOS = IT_CDSHW
EXCEPTIONS
NO_POSITION_FOUND = 1
WRONG_ACCESS_TO_ARCHIVE = 2
OTHERS = 3.
IF SY-SUBRC EQ 0.
PERFORM GET_ACTION .
ENDIF.
ENDLOOP.
ENDLOOP.
ENDIF.
* Changes in Delivery
IF NOT DL_VBELN[] IS INITIAL.
REFRESH : IT_CDHDR , IT_CDPOS.
SELECT OBJECTCLAS OBJECTID CHANGENR USERNAME UDATE
FROM CDHDR INTO CORRESPONDING FIELDS OF TABLE IT_CDHDR
FOR ALL ENTRIES IN DL_VBELN
WHERE OBJECTCLAS EQ 'LIEFERUNG'
AND OBJECTID EQ DL_VBELN-VBELN
AND USERNAME IN S_CHABY
AND UDATE IN S_CHADT
AND CHANGE_IND EQ 'U'.
LOOP AT IT_CDHDR.
CONCATENATE SY-MANDT IT_CDHDR-OBJECTID
INTO IT_CDHDR-TABKEY .
CONDENSE IT_CDHDR-TABKEY.
MODIFY IT_CDHDR.
ENDLOOP.
IF NOT IT_CDHDR[] IS INITIAL.
SELECT * INTO TABLE IT_CDPOS FROM CDPOS
FOR ALL ENTRIES IN IT_CDHDR
WHERE OBJECTCLAS EQ IT_CDHDR-OBJECTCLAS
AND OBJECTID EQ IT_CDHDR-OBJECTID
AND CHANGENR EQ IT_CDHDR-CHANGENR
AND TABNAME EQ 'LIKP'
AND TABKEY EQ IT_CDHDR-TABKEY
AND FNAME IN ('WADAT','LFDAT','ROUTE','VSBED')
AND CHNGIND EQ 'U' .
LOOP AT IT_CDPOS .
CLEAR IT_DL_CHG-FLAG_RED.
CASE IT_CDPOS-FNAME.
WHEN 'WADAT'.
MOVE 'Goods issue date changed' TO IT_DL_CHG-ACTION.
WHEN 'LFDAT'.
MOVE 'Delivery date changed' TO IT_DL_CHG-ACTION.
MOVE 'X' TO IT_DL_CHG-FLAG_RED.
WHEN 'ROUTE'.
MOVE 'Route Changed' TO IT_DL_CHG-ACTION.
WHEN 'VSBED'.
MOVE 'Shipping Condition Changed' TO IT_DL_CHG-ACTION.
WHEN OTHERS.
ENDCASE.
AT NEW CHANGENR .
READ TABLE IT_CDHDR WITH KEY OBJECTCLAS = IT_CDPOS-OBJECTCLAS
OBJECTID = IT_CDPOS-OBJECTID
CHANGENR = IT_CDPOS-CHANGENR
BINARY SEARCH.
MOVE IT_CDHDR-USERNAME TO IT_DL_CHG-ERNAM.
WRITE IT_CDHDR-UDATE TO IT_DL_CHG-ERDAT.
ENDAT.
IT_DL_CHG-COUNTER = IT_DL_CHG-COUNTER + 1.
MOVE IT_CDPOS-OBJECTID TO IT_DL_CHG-VBELN.
MOVE IT_CDPOS-VALUE_OLD TO IT_DL_CHG-OLD_VAL.
MOVE IT_CDPOS-VALUE_NEW TO IT_DL_CHG-NEW_VAL.
INSERT TABLE IT_DL_CHG.
ENDLOOP.
ENDIF.
ENDIF.
ENDFORM. " GET_CHANGES
Cheers
VJ -
Unable to join the tables CDHDR, CDPOS
Hello,
I want to create a Query connecting tables CDHDR & CDPOS to extract cost center details which are changed. To be precise, when cost center details are changed using transactions KS02 & KS03, I want to extract those details and run the report. I am unable to join the tables using SAP Queries SQ01, SQ02, SQ03.
Kindly suggest me regarding the same.
Thanks in advance.
Regards
Sravan Mulumudi.Hi Jeve,
I was testing the report S_ALR_87012308, but this displays changes done to G/L accounts. I have tried every possibility. Could you please explain further ?
Regards
Sravan. -
Find the key for join between table "crhd" and "equi" for use field "answt"
I make program for read data from table "crhd" for print about machine report
but I can not find the key for link join to table "equi" for print field "answt" (acquistion value)
please help me find the key field for join between table "crhd" and "equi" for use field "answt"
thank you very much...This is how the Work Center is linked to a particular Equipment -
Functional - In IE03 ( view Equipments) You see the Work Center of a particular Equipment.
Technical - Go to view V_EQUI ( view of EQUI and EQUZ). Pass the Equipment number alongwith V_EQUI-PM_OBJTY = 'A' ( i,.e searching for the Object Type Work Center). In this way u ll get the V_EQUI-GEWRK - this is the Work Center ID.
You can pass this Work Center ID to CRHD. And you will get the Work Center text.
CRHD-OBJTY = 'A'
CRHD-OBJID = V_EQUI-GEWRK.
and u ll get the CRHD-ARBPL - this is the Work Center.
So u need to come backwards, alongwith ur CRHD-OBJTY and CRHD-OBJID , you pass the same to V_EQUI and u get the list of equipment numbers alongwith ur ANSWT(Acquisition value).
I guess it solves ur problem. -
Help reqd to join the table of ADRC and MT001W tables
Hi all,
im working on PO and i need to display the delivery addresses where the records are available in these two tables.
I want to join the table...so pls tell me which primary field key will work out for this...i've taken the record of name field from MT001W table but while i joining with ADRC table thru name2 = g_name2...its not getting printed.
****i've moved the MT001W-name2 to the variable g_name2.
****but when im matching the record with ADRC...its not coming..pls go thru the code once b4 reply.
select name2 from MT001w into g_name2 where WERKS = g_xekpo-werks.
endselect.
if sy-subrc = 0.
*move g_name2 to g_add.
*endif.
select house_num1 street post_code1 from adrc into (g_house , g_street , g_pcode)
where name2 = g_name2 and langu = 'E'.
endselect.
*if
*move g_street to i_street.
endif.
pls do the needful and reply ur comments on urgent basis.
thanks & regards
sankar.hi Madhavi t ,
thanks a lot man....
i've done it....
thansk & regards
sankar. -
I want to join the table vbrk,vbrp,konv and fields are vbeln, knumv.
i want to join the table vbrk,vbrp,konv and fields are vbeln, knumv is possible .
if it isn't possible. what is the another method output is doc. no.(vbrp-vbeln) condition doc. no.(vbrk-knumv) , condition(konv-kschl), tax rate(konv-mwsk1), quantitty(vbrp-fkimg) .reply pls... as soon as possible..Hi..
This is the Join :
SELECT VBAKVBELN VBRKKNUMV
VBRP~FKIMG
KONV-KSCHL KONV~MWSK`
FROM VBRK
INNER JOIN VBRP
ON VBRKVBELN = VBRPVBELN
INNER JOIN KONV
ON KONVKNUMV = VBRKKNUMV
INTO TABLE <ITAB>
WHERE <CONDITION>.
REWARD IF HELPFUL. -
Help needed for report on tables vbak and vbap
Hello,
I needed help in one of my work issues, this is my first project and Iam still learning. kindly help.
I was asked to take erdat,vbeln,posnr from selection screen and compare it with the data already in tables vbap,vbak. If the data
already exists and exception needs to be raised saying that the 'data exists',but if the data is not present in the tables the
tables have to be updated. This has to be done using function module only.
Then I have to write a REPORT calling the above function module and finally displaying the number of records updated and the
list of them.
I have started writing a function module:
FUNCTION z_tableupdate.
""Local Interface:
*" IMPORTING
*" VALUE(DATE) LIKE VBAK-ERDAT DEFAULT SY-DATUM
*" VALUE(SALESORDERNO) LIKE VBAK-VBELN
*" VALUE(ITEMNO) LIKE VBAP-POSNR
*" EXPORTING
*" VALUE(EX_VBAP) LIKE VBAP STRUCTURE VBAP
*" VALUE(SYS) LIKE SY-SYSID
*" VALUE(EX_VBAK) LIKE VBAK STRUCTURE VBAK
*" EXCEPTIONS
*" DATA_UPDATED
*" DATA_EXISTS
SELECT * FROM vbak INTO vbak_wa WHERE erdat = date
AND vbeln = salesorderno.
ENDSELECT.
SELECT * FROM vbap INTO vbap_wa WHERE posnr = itemno.
ENDSELECT.
IF sy-subrc EQ 0.
ex_vbap = vbap_wa.
ex_vbak = vbak_wa.
ELSE.
RAISE data_exists.
ENDIF.
sys = sy-sysid.
ENDFUNCTION.
How is the above code for function module, will this work??
Now can I write a report to call the above function module and update the record?? if so, how to update ??? please help...Lots of thanks in advance.Hi
Welcome to SDN forum
Whay can't you write a simple report in SE38.
why you are using Fun module
Nothing wrong in it.
But first become perfetc in reports in SE38 and then do using the fun modules
write a simple select statement like
SELECT AVBELN AERDAT BPOSNR BMATNR
INTO TABLE ITAB
FROM VBAK AS A JOIN VBAP ON
AVBELN = BVBELN
WHERE A~VBELN IN S_VBELN AND
A~ERDAT IN S_ERDAT AND
B~POSNR IN S_POSNR.
IF SY-SUBRC <> O.
WRITE: / 'No data found'.
ENDIF.
First write this in SE38 by defining a proper selection screen and internal tables
then do as fun module
see the doc for fun module
Function Modules;
Check this matter.
Function Modules are Global ABAP programs created by SAP for reusable purpose.they have IMPORT,EXPORT and TABLE parameters, and EXCEPTIONS to through when error occurs.
You can create them from TCode SE37.
Go through the following doc:
Function modules are cross-program, reusable procedures that are organized into function groups, and whose functions are implemented between the statements FUNCTION and ENDFUNCTION. Function modules and their interfaces are created in the Function Builder.
Function Module Interfaces
The parameter interface of a function module is defined in the Function Builder. It includes the definition of interface parameters and the specification of exceptions that can be triggered by a function module. The Function Builder automatically generates comment lines below the FUNCTION statement in the source code of the function module, which represent the interface of the function module with the following syntax:
Syntax
... [IMPORTING parameters]
[EXPORTING parameters]
[CHANGING parameters]
[TABLES table_parameters]
[{RAISING|EXCEPTIONS} exc1 exc2 ...]
The syntax and semantics of IMPORTING, EXPORTING, CHANGING, RAISING, and EXCEPTIONS mainly correspond to the definition of method interfaces with [CLASS-]METHODS. The additional option of defining table parameters using TABLES is obsolete.
Interface parameters
The interface parameters are defined on the relevant tab pages in the Function Builder.
IMPORTING parameters are input parameters. When the function module is called, a suitable actual parameter must be specified for every non-optional input parameter. The content of the actual parameter is passed to the input parameter when the call is made. The content of an input parameter for which 'pass by reference' is defined cannot be changed in the function module.
EXPORTING parameters are output parameters. When the function module is called, a suitable actual parameter can be specified for every output parameter. The content of an output parameter that is defined for 'pass by value' is transferred to the actual parameter if the function module is completed without errors. An output parameter that is defined for pass by reference is not initialized when the function module is called.
CHANGING parameters are input and output parameters. When the function module is called, a suitable actual parameter must be specified for every non-optional input or output parameter. When the function module is called, the content of the actual parameter is passed to the input/output parameter, and when the function module is completed, the content of the input/output parameter is passed to the actual parameter.
TABLES parameters are table parameters. Table parameters are obsolete CHANGING parameters that are typed as standard tables with a header line. If an internal table without a header line or a table body is passed as an actual parameter to a formal parameter of this type, an empty local header line is generated in the function module. If an internal table with a header line is used as an actual parameter, both the table body and the header line are passed to the function module. Pass by value is not possible in formal parameters defined using TABLES. Formal parameters defined with TABLES can be replaced by formal parameters defined with CHANGING. A local work area can be created for the internal table in the function module by using the addition LIKE LINE OF itab of the DATA statement.
Exceptions
The exception of a function module are defined on the Exceptions tab page in the Function Builder. Here you can select exception classes to define whether class-based exceptions are declared or non-class-based exception are defined. Class-based exceptions are represented in the above syntax by RAISING, and non-class-based exceptions are represented by EXCEPTIONS.
The addition RAISING is used to declare class-based exceptions that can be propagated from the function module to the caller. Exceptions in the categories CX_STATIC_CHECK and CX_DYNAMIC_CHECK must be explicitly declared, otherwise a propagation can lead to an interface violation. A violation of the interface leads to the treatable exception CX_SY_NO_HANDLER. Exceptions of the category CX_NO_CHECK are implicitly always declared. The declaration of exceptions of the category CX_STATIC_CHECK is statically checked in the syntax check. For exceptions of the category CX_DYNAMIC_CHECK, the check is not performed until runtime. In a function module in which class-based exceptions are declared with the RAISING addition, the statement CATCH SYSTEM-EXCEPTIONS cannot be used. Instead, the relevant treatable exceptions should be handled in a TRY control structure.
The addition EXCEPTIONS is used to define a list of non-class-based exceptions that can be triggered in the function module using the statements RAISE or MESSAGE RAISING. Exceptions defined in this way - as with formal parameters - are bound to the function module and cannot be propagated. If an exception of this type is triggered in a function module, and no return value has been assigned to it with the homonymous addition EXCEPTIONS of the CALL FUNCTION statement when the call was made, this leads to a runtime error.
Note
For new developments after release 6.10, SAP recommends that you work with class-based exceptions that are independent of the function module.
RFC is a technology which is used to access a functions (Modules) from
the remote systems.
If a function module is set as remote enabled which can be access from
the remote system via RFC.Eg: U can access the Remote enabled function modules in ur VB,Webdynpro,Java,Visual composer program.
A function module can be set as remote enabled by SE37->Go to ur FM->click the option Button "remote enabled".
But Normal function modules can not accessd from the remote system.
Good Example for RFC enabled function module is : BAPI(Business Application Programming Interface)
Note: All BAPIs are Remote enabled but not all remote enabled function modules are BAPI.
CALLING A FUNCTION MODULE:
1)In U ABAP Editor --> Click "Patter" ---> Selection Option Button "Call Function"
--> Write the Corresponding FM name --> Hit Enter
2)The appropriate import ,export Parameters will be displayed in ur editor
3)Pass the Values Here.
Also check these links.
http://www.geocities.com/victorav15/sapr3/abapfun.html
Check this link:
http://help.sap.com/saphelp_erp2004/helpdata/en/9f/db988735c111d1829f0000e829fbfe/content.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/ef/d94b78ebf811d295b100a0c94260a5/frameset.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/43/41341147041806e10000000a1553f6/frameset.htm
Check this link:
http://help.sap.com/saphelp_erp2004/helpdata/en/9f/db988735c111d1829f0000e829fbfe/content.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/ef/d94b78ebf811d295b100a0c94260a5/frameset.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/43/41341147041806e10000000a1553f6/frameset.htm
See the following links:
http://help.sap.com/saphelp_erp2005vp/helpdata/en/9f/db970e35c111d1829f0000e829fbfe/frameset.htm
http://help.sap.com/saphelp_erp2005vp/helpdata/en/9f/db970e35c111d1829f0000e829fbfe/frameset.htm
http://help.sap.com/saphelp_erp2005vp/helpdata/en/9f/db970e35c111d1829f0000e829fbfe/frameset.htm
http://help.sap.com/saphelp_erp2005vp/helpdata/en/9f/db970e35c111d1829f0000e829fbfe/frameset.htm
http://help.sap.com/saphelp_erp2005vp/helpdata/en/9f/db970e35c111d1829f0000e829fbfe/frameset.htm
http://help.sap.com/saphelp_nw04/helpdata/en/26/64f623fa8911d386e70000e82011b8/content.htm
Regards
Anji -
How to list all the rows from the table VBAK
Friends ,
How to list all the rows from the table VBAK.select query and the output list is appreciated.Hi,
IF you want to select all the rows for VBAK-
Write-
Data:itab type table of VBAK,
wa like line of itab.
SELECT * FROM VBAK into table itab.
Itab is the internal table with type VBAK.
Loop at itab into wa.
Write: wa-field1,
endloop. -
Hi,
My doubt is can I join the table with view in the below where clause condition in the query. If yes, the below query will take 4 hrs to execute it. Can I do the below query to write as simplest?
SELECT *
FROM uabpymt p, uavlsum l
WHERE uabpymt_appl_ind = 'N'
AND uabpymt_amount > 5
AND l.uavlsum_balance < 0
AND l.uavlsum_cust_code = p.uabpymt_cust_code
AND l.uavlsum_prem_code = p.uabpymt_prem_codeuavlsum ---view
uabpymt ---table
The view script below:
CREATE OR REPLACE VIEW UAVLSUM
(UAVLSUM_CUST_CODE, UAVLSUM_PREM_CODE, UAVLSUM_AMOUNT, UAVLSUM_BALANCE)
AS
SELECT cust_code,
prem_code,
SUM(amount),
SUM(balance)
FROM (
SELECT uabopen_cust_code cust_code,
uabopen_prem_code prem_code,
uabopen_billed_chg amount,
uabopen_balance balance
FROM uimsmgr.uabopen
UNION ALL
SELECT uabpymt_cust_code,
uabpymt_prem_code,
uabpymt_amount * -1,
uabpymt_balance * -1
FROM uimsmgr.uabpymt
UNION ALL
SELECT uabadje_cust_code,
uabadje_prem_code,
uabadje_balance,
to_number(0)
FROM uimsmgr.uabadje
WHERE uabadje_balance <> 0)
GROUP BY cust_code,
prem_codeFind the below explain plan output which we get from the execute the query
STATEMENT_ID TIMESTAMP REMARKS OPERATION OPTIONS OBJECT_NODE OBJECT_OWNER OBJECT_NAME OBJECT_INSTANCE OBJECT_TYPE OPTIMIZER
16/01/2009 05:57:24 SELECT STATEMENT RULE
16/01/2009 05:57:24 FILTER
16/01/2009 05:57:24 SORT GROUP BY
16/01/2009 05:57:24 TABLE ACCESS BY INDEX ROWID UIMSMGR UABPYMT 1
16/01/2009 05:57:24 NESTED LOOPS
16/01/2009 05:57:24 VIEW UIMSMGR 3
16/01/2009 05:57:24 UNION-ALL
16/01/2009 05:57:24 TABLE ACCESS FULL UIMSMGR UABOPEN 4
16/01/2009 05:57:24 TABLE ACCESS FULL UIMSMGR UABPYMT 5
16/01/2009 05:57:24 TABLE ACCESS FULL UIMSMGR UABADJE 6
16/01/2009 05:57:24 INDEX RANGE SCAN UIMSMGR UABPYMT_CUST_PREM_INDEX NON-UNIQUE
Index column:
Table name :UABPYMT
Column Name
UABPYMT_APPL_IND
UABPYMT_APPROVED_IND
UABPYMT_PYMT_DATE
UABPYMT_SOURCE
UABPYMT_ORIGIN
UABPYMT_CUST_CODE
UABPYMT_PREM_CODE
UABPYMT_PYMT_DATE
UABPYMT_AR_TRANS
UABPYMT_GL_IND
UABPYMT_GL_POST_DATE
UABPYMT_AR_TRANS -
The order of joining the tables in a query ANSI92
Hi all!
I have three table in Univerce.
I need that those tables joined in next order:
tab1 inner join tab2 right join tab3
When creating a report in WebI they are connected as (regardless of the order of dimentions):
tab1 right join tab3 inner join tab2
How to set the correct order of joining the tables?
OR
how to change RIGHT OUTER JOIN on LEFT OUTER JOIN ?
P.S. I use BO XI3.1, which not have parameter OUTERJOINS_GENERATION
Thanks!it depends on your source system
for example if you are using oracle, you can edit the link between the table and add this
(+)
for example
TAB1.ID = TAB2.ID (+)
AND TAB1.DEPT = TAB2.DEPT(+)
See the following link for discussing outer and inner joins for oracle
http://www.dba-oracle.com/t_outer_joins.htm
good luck
Amr -
Can we join a table structure and a transparent table?
Pls let me know, whether we can join a table structure and a transparent table and how?
Hi rich,
Since i dont have ur id ,iam posting my issue on this ,can u please help me on the below issue.
below i have a set of code which would sends email along with attachtment .
iam getting the XLS attachtment perfectly ,but for TXT attachtment there was problem with formating all the records are formated in single line .
a solution on this would be helpfull.
Thanks,
vinay .
FUNCTION Z_SHANKAR_ATTACHMENT.
""Local Interface:
*" IMPORTING
*" VALUE(EMAILID)
*" VALUE(SUBJECT)
*" VALUE(ATYPE)
*" TABLES
*" ATTACH_FILE STRUCTURE SOLISTI1
*" BODY OPTIONAL
This table requires information about how the data in the
tables OBJECT_HEADER, CONTENTS_BIN and CONTENTS_TXT are
to be distributed to the documents and its attachments.
DATA OBJPACK LIKE SOPCKLSTI1 OCCURS 2 WITH HEADER LINE.
This table must contain the summarized data dependent on each object type.
SAPscript objects store information here about forms and styles,
for example. Excel list viewer objects store the number of rows and columns
amongst other things and PC objects store their original file name.
DATA OBJHEAD LIKE SOLISTI1 OCCURS 1 WITH HEADER LINE.
This table must contain the summarized content of the objects identified as binary objects.
DATA OBJBIN TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0
WITH HEADER LINE.
This table must contain the summarized content of the objects identified as ASCII objects.
DATA OBJTXT LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.
This table must contain the document recipients.
DATA RECLIST LIKE SOMLRECI1 OCCURS 5 WITH HEADER LINE .
This structure must contain the attributes of the document to be sent.
DATA: DOC_CHING LIKE SODOCCHGI1.
DATA: TAB_LINES LIKE SY-TABIX.
Create the internal table for body , subject
DATA: IT_BODY LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.
*changes added to the code by shankar.
constants: x(1) type X value '0A'.
*End of changes to the code
CONSTANTS: con_cret TYPE C VALUE cl_abap_char_utilities=>horizontal_tab,
con_tab TYPE C VALUE cl_abap_char_utilities=>cr_lf,
con_new type c value CL_ABAP_CHAR_UTILITIES=>NEWLINE.
Move Body to Internal Table (body into it_body)
LOOP AT BODY .
MOVE BODY TO IT_BODY .
APPEND IT_BODY .
ENDLOOP.
DOC_CHING-OBJ_DESCR = SUBJECT. "Subject of the Email
Move the Subject and Body to OBJTXT
OBJTXT[] = IT_BODY[].
DESCRIBE TABLE OBJTXT LINES TAB_LINES.
READ TABLE OBJTXT INDEX TAB_LINES.
DOC_CHING-DOC_SIZE = ( TAB_LINES - 1 ) * 255 + STRLEN( OBJTXT ).
CLEAR OBJPACK-TRANSF_BIN.
OBJPACK-HEAD_START = 1.
OBJPACK-HEAD_NUM = 0.
OBJPACK-BODY_START = 1.
OBJPACK-BODY_NUM = TAB_LINES.
OBJPACK-DOC_TYPE = 'RAW'.
APPEND OBJPACK.
Convert IT to Excel format
IF ATYPE = 'XLS' .
LOOP AT ATTACH_FILE .
REPLACE ALL OCCURRENCES OF '#' IN ATTACH_FILE WITH con_cret. " INTO objbin.
CONCATENATE ATTACH_FILE con_tab INTO objbin.
APPEND objbin.
ENDLOOP.
ELSEIF ATYPE = 'TXT' .
LOOP AT ATTACH_FILE .
REPLACE ALL OCCURRENCES OF '#' IN ATTACH_FILE WITH con_tab. " INTO objbin.
CONCATENATE con_new ATTACH_FILE-line INTO OBJBIN-line .
*changes done by shankar
*CONCATENATE ATTACH_FILE-line con_new INTO OBJBIN-line .
APPEND OBJBIN .
ENDLOOP.
ENDIF.
****End-Code Excel Format .
DESCRIBE TABLE objbin LINES tab_lines.
objhead = subject. APPEND objhead.
Creating the entry for the compressed attachment
objpack-transf_bin = 'X'.
objpack-head_start = 1.
objpack-head_num = 1.
objpack-body_start = 1.
objpack-body_num = TAB_LINES.
objpack-doc_type = ATYPE.
objpack-obj_name = 'ATTACHMENT'.
objpack-obj_descr = 'TEST'. "Attachment File Name
objpack-doc_size = TAB_LINES * 255.
APPEND objpack..
reclist-receiver = EMAILID.
reclist-rec_type = 'U'.
APPEND reclist.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
DOCUMENT_DATA = DOC_CHING
PUT_IN_OUTBOX = 'X'
COMMIT_WORK = 'X'
IMPORTING
SENT_TO_ALL =
NEW_OBJECT_ID =
TABLES
PACKING_LIST = OBJPACK
OBJECT_HEADER = OBJHEAD
CONTENTS_BIN = OBJBIN
CONTENTS_TXT = OBJTXT
RECEIVERS = RECLIST
EXCEPTIONS
TOO_MANY_RECEIVERS = 1
DOCUMENT_NOT_SENT = 2
OPERATION_NO_AUTHORIZATION = 4
OTHERS = 99 .
ENDFUNCTION. -
I need a report that will join two tables BKPF and VBRK in QuickViewer. The only field with the right character length is XBLNR but when creating the join no records are dispalyed beacuse the values of this field in both tables are not the same.
There are also other fields available in BKPF but the char length is not the appropriate.
Does anyone have any idea how I can link these two tables?
Thank youNeither of these combinations is possible with QuickViewer because the fields need to have the same length of characters in order to create the join.
VBRK - VBLEN char(10) and BKPF - AWKEY char(20)
VBRK -ZUONR char(18) BKPF- BELNR char (10)
Any other idea?
Thank you, JP -
Joining two tables LIKP and VBUK
HI,
I want to join two tables LIKP and VBUK, can u give some explaination ?
points will be given for good answers...
regards
VijayaHi,
see this example of joining two tables zairln & zflight.
These 2 tables are logically joined by the airln field.
Select a~airln
a~lnnam
b~fligh
b~cntry
Into table int_airdet
From zairln as a inner join zflight as b on aairln = bairln.
In order to restrict the data as per the selection criteria, a where clause can be added to the above inner join.
rgds,
latheesh
Message was edited by: Latheesh Kaduthara -
I want to join the table vbrk,vbrp,konv but konv is cluster table .
Hi
konv is the cluster table . so I want to join the table vbrk,vbrp,konv and fields are vbeln, knumv is possible .
if it isn't possible. what is the another method output is doc. no.(vbrp-vbeln) condition doc. no.(vbrk-knumv) , condition(konv-kschl), tax rate(konv-mwsk1), quantitty(vbrp-fkimg) .reply pls... as soon as possible..hi
good
1) Open
Select
Mard~matnr
Makt~maktx
From Makt
Inner Join Mard
on Maktmatnr = Mardmatnr
Where Makt~Spras = SY-LANGU
2) Native Oracle
SELECT Mard.matnr,
Makt.maktx
From Makt, Mard
Where Makt.mandt = Mard.mandt
And Makt.matnr = Mard.matnr
And Makt.mandt = :SY-MANDT
And Makt.spras = :SY-LANGU
3) KONV is Cluster - BAD LUCK!
Select VBRK~VBELN
VBRP~POSNR
KONV~KSCHL
KONV~KWERT
From ( VBRK Inner Join VBRP
On VBRKVBELN = VBRPVBELN )
Inner Join KONV
On VBRKKNUMV = KONVKNUMV
And VBRPPOSNR = KONVKPOSN
4) KONV is Cluster - BAD LUCK!
Select KONV~KNUMV
KONV~KPOSN
KONV~KSCHL
KONV~KWERT
From KONV
Where KONV~KNUMV in (
Select VBRK~KNUMV
From VBRK Inner Join VBRP
On VBRKVBELN = VBRPVBELN
Where VBRKKNUMV = KONVKNUMV
And VBRPPOSNR = KONVKPOSN
5) Open
Select VBRP~MATNR
Sum( VBRP~NETWR )
From VBRP
Group By VBRP~MATNR
6) Native Oracle
Select VBRP.MATNR ,
Sum( VBRP.NETWR )
From VBRP
Where mandt = :sy-mandt
Group By VBRP.MATNR
7) Native Oracle
Select VBRP.MATNR ,
Count( VBRP.NETWR ),
Sum( VBRP.NETWR )
From VBRP
Where mandt = :sy-mandt
Group By VBRP.MATNR
8) Open
Select VBRP~MATNR
makt~maktx
Sum( VBRP~NETWR )
From VBRP inner Join MAKT
On VBRPMATNR = MAKTMATNR
Where MAKT~SPRAS = SY-LANGU
Group By VBRPMATNR maktmaktx
9) Native Oracle
Select VBRP.MANDT,
VBRP.MATNR,
MAKT.MAKTX,
Sum( VBRP.NETWR )
From VBRP , MAKT
Where VBRP.MANDT = MAKT.MANDT
And VBRP.MATNR = MAKT.MATNR
And MAKT.SPRAS = :SY-LANGU
Group By VBRP.MANDT, VBRP.MATNR, MAKT.MAKTX
10) Open
SELECT EKET~EBELN
EKET~EINDT
EKET~WAMNG
EKET~WEMNG
From ( ekko INNER JOIN ekpo
ON ekkomandt = ekpomandt
AND ekkoebeln = ekpoebeln
INNER JOIN eket
ON ekpomandt = eketmandt
AND ekpoebeln = eketebeln
AND ekpoebelp = eketebelp
AND EKET~WAMNG > 0
AND EKETWAMNG <> EKETWEMNG
Where EKPO~MATNR = 'NB220'
And EKPO~WERKS In ('P001', 'P004', 'L004')
And EKKO~BSTYP = 'F'
And EKKO~BSART = 'UB'
And EKPO~ELIKZ <> 'X'
And EKKO~LOEKZ <> 'X'
11) Native Oracle
SELECT EKET.EBELN,
EKET.EINDT,
EKET.WAMNG,
EKET.WEMNG
FROM ( ekko INNER JOIN ekpo
ON ekko.mandt = ekpo.mandt
AND ekko.ebeln = ekpo.ebeln
INNER JOIN eket
ON ekpo.mandt = eket.mandt
AND ekpo.ebeln = eket.ebeln
AND ekpo.ebelp = eket.ebelp
AND EKET.WAMNG > 0
AND EKET.WAMNG <> EKET.WEMNG
Where EKPO.MATNR = 'NB220'
And EKPO.WERKS In ('P001', 'P004', 'L004')
And EKKO.BSTYP = 'F'
And EKKO.BSART = 'UB'
And EKPO.ELIKZ <> 'X'
And EKKO.LOEKZ <> 'X'
thanks
mrutyun^ -
What are the tables PHO and LOC of OIM Schema?
Hi,
In the schema documentation of OIM tables you have the following description for the tables PHO and LOC:
LOC - Holds information about locations
PHO - Holds all communication addresses for this contact -- e.g., contact telephone numbers,fax numbers, e-mail, etc.
When those have have some records? I haven't seen yet any form ou function where I can put some information like that.
I don't have any problem with them and it is just for curiosity. As I understand the OIM User Model, I thought those tables were part of OIM User Model, where:
Organization (field ACT_Key of USR table)
Location (I guess table LOC but it is always empty in my env). There is a field USR_LOCATION but it is not shown by default.
User Group (all groups a user is member are in the USG table)
User Defined Fields (all fields start with USR_UDF of USR table)
Manager (USR_MANAGER that is alwasys empty and USR_MANAGER_KEY that has the Key of User's Manager)
Organization (ACT_KEY of USR table)
Contact Information (I guess it is the table PHO)
Thanks,
Renato.They probably serve no purpose anymore but might have been used at some point during the life cycle of the product.
-Kevin
Maybe you are looking for
-
Disable Forced Smart View Upgrade for HFM Connections
Our users are trying to validate data in a new development application and, when connecting to that application, are getting a message from Smart View that a new version is available. Is there a way to disable this message? Our development and produc
-
Problems when maintaining 0MATERIAL
Hi, I have found a problem with 0MATERIAL characteristic. when you double-clic on it, a message displays: "Settings for material number conversion not found" And the create/maintain infoobject shows all the text boxes blank. ¿does any one knows what
-
Execute java code before rendering the page
Hi, In a task flow, can I execute some java code before the page/view is rendered (i.e. some preprocessing). I would need to be able to have access to the bindings on the page. Thanks!
-
What is Field catalog pls urgent
Right now I am working on ALV, in that I am using REUSE_ALV_GRID_DISPLAY FM, but the parameters for this FM are an internal table name and a field catalog so i am confused that what field catalog is? Please help me out its very urgent. Thanks in adva
-
error: Time Machine couldn't complete the backup to Time Capsule - Unable to complete backup. An error occurred while creating the backup folder.