Extraction ignores selection criteria
I am extracting data from Infotypes in R/3. I only want the current record, i.e., the one whose ENDDA equals infinity, i.e., 12/31/9999. So given thousands of employee records, I only want to extract one per employee.
In the Selection tab of the infoPackage, I enter a range that covers around 100 employees, for test purposes; and in the field entitled ENDDA, I enter 12/31/9999.
When I specify these selection criteria in RSA3 as a test in the source system, I get exactly what I specified, my 100 or so records, each one with ENDDA = 12/31/9999.
But when I run the extraction in BW, it pulls in almost 900 records, with every record for each employee.
What can I do to exclude the non-infinity records??
And why are these records pulled when selection criteria does not specify them?
Thanks guys for the answers, but I have indeed tried every way possible to enter these selection values, in the first field for ENDDA, and in both the from and to fields.
Also, I tried entering 99991231, but hitting the Check button reverts it back to the proper format of 12/31/9999; I did check the debugger option while testing it in RSA3, and indeed internally ENDDA has the value 99991231.
I tried starting the infoObject with no PERNR values, with only the infinity date as selection, but the job bombed. Why does it work in RSA3, but not when invoked with an RFC? From BW ?
I have tried every way possible, and I still get a boatload of records for each employee, when all I want is the one with an infinity date of 12/31/9999.
Similar Messages
-
BW ignores selection criteria in a Infopackage after transport
Hi all,
After transporting Infopackages with selection criteria the target system ignores them. If I create further Infopackages on the target system everthing is fine. It seems as if the criteria were not transported but they are displayed. I replaced the criteria, saved the infopackage again but this didn't solve my issue.
We are using BW 7.0 Level 14.
Any ideas?
Many thanks, DennisHi Srini,
thanks for your quick repsonse. I am talking about 10 Infopackages. I transported some of them again but always the same issue. I created new infopackages on production and indeed it works but I use them in process chains and therefoe I might change the chains on production. This is something I don't want to do.
Any other ideas?
Cheers, Dennis -
How to ignore the selection criteria temporary page in print
Hi Experts,
I use 2007A and when i would like to print example a Trial Balance then the system prints the selection criteria on the first printed page .
How can I delete or ignore this option? There's no need for this print.
I was searching in help files but with no success.
Thanks,
EszterIn Administration > System Initialization > Print Preferences > General Tab
There is a checkbox for "Print SAP Business One Generation Message"
Uncheck it to not print the first page with selection criteria.
Hope this was what you were looking for. -
Selection criteria are not applied to summary fields on group footers.
I wonder if anyone can help me with this problem. I am using Crystal reports version 11.2, and my data source is a Sql Server view.
The records on the view have a date field, and I have selected all records within a given date range in "Selection Formulas".
The records are then grouped, and the Crystal summary facility used to summarise number fields on the group footers.
So for example, if my view contains four records, one with field "amount" = 2, one with field "amount" = 8, one with field "amount" = 6, one with field "amount" = 3, but only the first two records are within the valid date range, you would expect to see the first two records listed out at detail level, then field "amount" summarised at group level, with a summarised value of 10.
ie .... record1 2
record2 8
group level total 10
This works fine when I run the report using Crystal's "print preview" facility. However, when the report is run from within an application written in C#.NET, the selection criteria are not applied to the summary field, so you get ..
record1 2
record2 8
group level total 19
I tried putting the date selection criteria at both record and group level, but that did not work.
I googled the problem and found an article explaining that Crystal first performs the record-level selection, then it creates the groups and totals up any summary fields, and only then does it apply the group-level selection criteria, which can lead to problems like the one I have described above. However, since I have put my date selection criteria at both record and group level, I do not understand why I still get the problem.
In one report I got round this problem by creating a formula that returned zero if the record date was outside of the valid date range, and returned the number field to be summarised if the date was valid, then summarising that formula, instead of summarising the number field directly.
In other reports I created one formula to set a shared variable as zero, then another formula to accumulate it at detail record level, then another formula to display the variable at the group footer. In other words, I did not bother with the Crystal summary facility at all, but created my own summary facility.
While googling the problem to see what other people did in this situation, I noticed that most fixes used variations of the "shared variables and formulae" fix to get round the problem.
The problem is that I have lots of complex reports and it will take ages to replace the summarised fields with shared variables and formulae. The reports were initially tested with "Print Preview" so we did not notice this problem until the C#.Net application was ready to use them. And I can't believe that you are simply meant to ignore the summary facility and re-invent the wheel by doing it all manually.
Please tell me that there is something simple that I have been doing wrong!!! If I have not given enough information for you to answer, please let me know.
Thanks,
Anne-MarieHi, Anne-Marie;
You may be running into a common issue that is docuemented here:
[SelectionFormula|https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/oss_notes_boj/sdn_oss_boj_erq/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/scn_bosap/notes%7B6163636573733d36393736354636443646363436353344333933393338323636393736354637333631373036453646373436353733354636453735364436323635373233443330333033303331333233303334333833393335%7D.do]
Regards,
Jonathan
Edited by: Jonathan Parminter on Mar 16, 2009 8:03 AM -
How to change Selection Criteria for a Business Content Data Source
Hi Experts
I am extracting data using 0CO_OM_CCA_9 Datasource. I would like to be able to select a range of Company Code (BUKRS) to pull in, but I cannot find a way to make certain fields available as selection criteria. When I go into "Change DataSource", I can unselect fields, and even select certain fields, but the option for most is grayed out.
How can I make this field available as selection criteria in Infopackage?
Thanks for the help.Its not that simple to enable a new selection for a Business Content Datasource, if its not already provided by SAP. Enabling new fields for selection should be accompanied by corresponding extractor code changes to process those field selections and use those selections throughout the extraction process.
Solution for your problem would be create a custom extractor with all the logic of standard extractor (function module BWOMD_GET_CTRCSTA1 for 0CO_OM_CCA_9) and extra logic to process the new fields for selection.
Hope it helps! -
Cannot acces to the selection criteria of a local query in web browser
We cannot access to the selection criteria of a local query in using the web browser
It seems this issue is already known, a local query created with BW release 7 cannot be used with the web browser.
But this is a blocking issue in our case because we cannot create another local query in using BW 3.X and if we are using the analyser with RRMX and Excel we cannot displayed more of 65000 rows due to Analyser R3.X or R7.
That's why we want to use the web browser because we can export the extraction from the intranet in MS Excel 2007 without limitation of rows.
Thanks in advance to find a solution asapHi Mustafa,
I checked your requirement but it is not possible to display first value as default value for a drop down list because the list will be generate when you click the drop down list. You can use a 'list box' instead of drop down list.
Regards
Basheer -
Selection Criteria for Delta loads triggered using MDM_CLNT_EXTR
Hi ,
Currently we are required to load data only from two specific account groups . Therefore in the selection criteria in mdm_clnt_extr we maintian these two account groups and extract data.
However, when setting up the delta load there does not to be an option to restrcit the delta to a specify an criteria. Therefore, in our case several records from account groups which are not required are passed on to the MDM system.
Is there a way to address this requirement ?
1. There is an option to run the initial load variants at regular intervals, the problem with this is that in our case we have several variant creates as the R/3 system does not allows extraction on more that 999 records at a time. Therefore at point of time to capture the delta records , if we run all these jobs our network gets choked.
2. Run delta job, but without selection criteria it pulls out records which we don't require
Any suggestions on how this problem can be addressed are welcome ,
Thanks in advance,
Anita GeorgeThanks Michael !
Well, regarding hte ALE settings, we did take a look in bd64 the filters are based on objects which one of these is relevant for customer account groups ? Probably in the future we would require all data, and then is it enogh to remove the filter ?
Can a filter be maintained at the XI level , this would be good as only the required account groups are passed on to MDM . Is there any documentation on available on this ?
Regarding the Import Manager, will have to check this functionality, as it is now no matter how many times we update the map/rename /load/unload it automated imports keep failing.
Our R/3 system seems to have problem extracting more than 999 records, as we tried with different number of records and all those extraction jobs got cancelled. So, currently we are running multiple jobs for the initial load and even this is very time consuming.
Thanks & Regards,
Anita George -
Change to Selection criteria in Datasource, do we need to re-init?
Hello all,
We are planning to change the selection criteria for a datasource, we want the year to be one of the selection criteria so we can load data only for particular years.
Now this datasource is in production for some time, so once we do this change will we have to re-init the extractor or the delta that is working will keep working fine?
Please let me know.
Thanks,Hi Kiran
Its worth mentioning that if its a V3 datasource like logistics then you need to load the setup table with the required data before extraction.
Also ensure that the measures in your DSO are in overwrite mode unless the year that you are loading does not currently exists in the DSO. (ie. its a new year)
The Full Repair Request option is under the Scheduler menu on the infopackage.
Hope this helps. <removed by moderator>
If you need more help let me know.
Asif
Edited by: Siegfried Szameitat on Jun 15, 2009 5:17 PM -
Error "Overlapping selection criteria with DTP" when transporting DTP
When transporting a DTP from Dev to QA I get the following error in the trasnport log:
Overlapping selection criteria with DTP DTP_4APJZSGKYQLUQYBCDBWK707JO
Message no. RSBK019
Diagnosis
The selection criteria for the DTP to be activated overlap with the selection criteria of DTP DTP_4APJZSGKYQLUQYBCDBWK707JO in field , for example, with regard to value . Delta transfer from a source object to a target object is only allowed to transfer each record oncce. However, this cannot be guaranteed if two DTPs have overlapping selection criteria with the 'Delta' extraction mode.
System Response
You cannot activate the DTP with the current selection criteria.
Procedure
Restrict the selection criteria so that they do not overlap with the selection criteria for DTP DTP_4APJZSGKYQLUQYBCDBWK707JO.
The DTP is a delta process which loads data from one infocube into an DSO. I understand that the error is that it is transporting the Delta parameters (something similar to a Delta initialization of infopackages I suppose) but I don´t how to access the information of the delta (selection criteria) of a DTP.
Any suggestions? or similar experiences?
Thanks in advance
nicoláHello,
You can modify a parameter to create and modify dtp in Production. Like normally is done with Infopackages. There is no reason to make the changes in Dev in the Infopackages and DTP, and transport to Production. This transports normally cause that kind of errors because the id's are different in Dev, QA and Prod, and it is difficult to change dtp in that way.
To change the parameter do like this:
Execute Trx. RSA1 -> Transport Connection -> Tab Object Changeability -> Change DTPA to Everything Changeable.
Do this in Dev, QA and Prod.
Regards,
Jorge Diogo -
There are no PSA tables for these selection criteria
Guys,
I am facing this problem while loading Master data hierarchies.I see the below error in Details tab
"There are no PSA tables for these selection criteria ".
Pls advice.Hi ,
1. Check first in source system that whether the extractor is active or not .
Best wayout to check from RSA3.
Hierachy datasources sometime gives error in RSA3 , you can also check froim RSA1HCAT in source system .
2. If extractor is active and while loading it gives error , you need to activate the transfer rules again and try to extract the data from r3 .
With Regards
Ankit Vaish -
Selection Criteria With Plant , And Reading File
Guys,
I have a selection criteria with fields SAP Plant, and a filepath to read a file. File will be containing fields like legacy plant,material, date,description etc as records. Upon user executes after giving the SAP Plants (which has low and high limit ie select-option) and filepath.
The program should first convert the SAP Plants to Legacy Plants and Read only those file contents where the legacy plant in file matches the converted legacy plants and other non matching plant file records ignored. Please suggest and gimme a sample code.
ShawnHi Shawn,
Naimesh i think this would help shawn, i have given u a sample code who to work around in a easy way.Guys comment on the program if u feel something i miss
Report Z_File_Example.
Type:Begin of ty_tab1
zlegacy_plant type zplant-zlegacy_plant
End of ty_tab1.
Type : Begin of ty_tab2
include fields similar to input file
legacy_plant(4) type c ,
no type mara-matnr,
descripion type mara-mkty,
End of ty_tab2.
Data : out_tab1 type standard table of ty_tab1,
wa1 type ty_tab1.
Data : out_tab2 type standard table of ty_tab2,
wa2 type ty_tab2.
Select-options : s_plant like mara-werks.
AT SELECTION-SCREEN ON END OF S_PLANT.
LOOP AT S_PLANT.
Select query takes both the lower limit and high in where condition to select
legacy plant from the table and populate the Work area and later to internal table.
Conversion of SAP Plant to Legacy Plant
Select ZLegacy_Plant
into corresponding fields of wa1
from Zplant where werks in S_plant
append wa1 to out_tab1
ENDLOOP.
***After reading a file using ws_upload , which gives an output in say out_tab2(internal table)
Call WS_UPLOAD
****We can iterate through the out_tab2 (shown below)
loop at out_tab2 into wa2 where legacy_plant in wa1-zlegacy_plant
Process those records as u want
end loop.
Thanks -
Thread: There are no PSA tables for these selection criteria - RSAODS209
Hello,
i'm trying to run an infopackage (0GL_ACCOUNT_T011_HIER_ME_FULL_R3) to load complete upload of hierarchy (0GL_ACCOUNT-HIERARCHIES 0GL_ACCOUNT ) extraction via PSA and then in corresponding info object. The load seems to work fine between ECC and PSA but it doesn't:
I lok at PSA and the monitor-request-status is RED and the message: "There are no PSA tables for these selection criteria - RSAODS209".
these are the messages:
Processing (data packet): Errors occurred
Data Package 1 ( 2370 Records ) : Errors occurred
Update PSA ( 2370 Records posted ) : Errors occurred
Data save in PSA started
2370 records written in PSA
There are no PSA tables for these selection criteria
I've created a new package only for loading the PSA (not the final object) but the same error appears.
I have also see this thread but I have no solution yet...
There are no PSA tables for these selection criteria - RSAODS209
thanks for your help!!Hi Marcel,
Check whether you have any RED requests in your PSA--> If so delete them
Make sure your DS, transfer rules/Transformation are active.
Also once replicate your DS & activate. Also activate transfer structure. Then try loading.
Hope it helps!
Regards,
Pavan -
There are no PSA tables for these selection criteria - RSAODS209
Hello,
i'm trying to run an infopackage (0GL_ACCOUNT_T011_HIER_ME_FULL_R3) to load complete upload of hierarchy (0GL_ACCOUNT-HIERARCHIES 0GL_ACCOUNT) extraction via PSA and then in corresponding info object. The load seems to work fine between ECC and PSA but it doesn't:
I lok at PSA and the monitor-request-status is RED and the message: "There are no PSA tables for these selection criteria - RSAODS209".
these are the messages:
Processing (data packet): Errors occurred
Data Package 1 ( 2370 Records ) : Errors occurred
Update PSA ( 2370 Records posted ) : Errors occurred
Data save in PSA started
2370 records written in PSA
There are no PSA tables for these selection criteria
I've created a new package only for loading the PSA (not the final object) but the same error appears.
I have also see this thread but I have no solution yet...
There are no PSA tables for these selection criteria - RSAODS209
thanks for your help!!Duplicate thread
-
SUBMIT rkaep000 with "Further Selection Criteria"
Hi all,
Could anyone please tell me how to call the transaction KSB1 with it's "Further Selection Criteria" (i.e. Document Number). I have tried the following but it didn't work.
SUBMIT rkaep000
WITH p_tcode = 'KSB1'
WITH kostl = '7062'
WITH r_belnr BETWEEN '101727316' AND '101727316'
WITH r_budat BETWEEN '20070101' AND '20070131'
AND RETURN.
Many thanks!
Steve.try using submit rkaep000 with with selection-table t_Screen_tab.
t_screen_tab is a table of type rsparams.
rsparams is a structure with following field.
SELNAME
KIND
SIGN
OPTION
LOW
HIGH
fill with an entry for each screen selection object.
eg.
t_screen_Tab-selname = 'R_BELNR'.
t_Screen_tab-kind = 'S'. "S for select option, P for parameter
t_Screen_tab-sign = 'I'. "I include E exclude
t_screen_tab-option = 'BT'. "between, EQ or NE
t_Screen_Tab-low = '101727316'.
t_screen_tab-high = '101727316'.
append t_screen_Tab.
repeat for all selection entries required.
Here is the abap help on topic
Addition 3
... WITH SELECTION-TABLE rspar
Effect
If you specify this addition, parameters and selection criteria on the selection screen are supplied from an internal table rspar. You must specify an internal table with the row type RSPARAMS for rspar. The structured data type RSPARAMS is defined in the ABAP Dictionary and has the following components, all of which are data type CHAR:
SELNAME (length 8),
KIND (length 1),
SIGN (length 1),
OPTION (length 2),
LOW (length 45),
HIGH (length 45).
To supply parameters and selection criteria for the selection screen with specific values, the lines in the internal table rspar must contain the following values:
SELNAME must contain the name of a parameter or selection criterion for the selection screen in block capitals
KIND must contain the type of selection screen component (P for parameters, S for selection criteria)
SIGN, OPTION, LOW, and HIGH must contain the values specified for the selection table columns that have the same names as the selection criteria; in the case of parameters, the value must be specified in LOW and all other components are ignored.
If the name of a selection criterion is repeated in rspar, this defines a selection table containing several lines and passes it on to the selection criterion. If parameter names occur several times, the last value is passed on to the parameter.
The contents of the parameters or selection tables for the current program can be entered in the table by the function module RS_REFRESH_FROM_SELECTOPTIONS.
Note
In contrast to selection tables, the data types of the components LOW and HIGH in table rspar are always of type CHAR and are converted to the type of the parameter or selection criterion during transfer, if necessary. -
Selection Criteria addition-Not working
Hi!
I have this report wherein I need to add two fields VBAP-Kunnr and knvv-konda in the selection screen so that I can do my drill down or search criteria based upon these two selections also apart from the existing ones, but unfortunately I am unable to get throiugh this and somehow putting this two selections in the selection criteria its not taking any effect or its just actinga dummy selection and I am unale to drill down my report based upon those. Can anyone have a look and let me know what could be the problem please. Help would be highly appreciated.
Thanks
*& Include ZSD_PFGENERATETOP Report ZSD_PFGENERATE
REPORT zsd_pfgenerate LINE-SIZE 170 LINE-COUNT 65.
TABLES: lips, likp, vbap, vbak, vbrp, vbpa, vbrk.
CONSTANTS: cns_vgtyp TYPE vbrp-vgtyp VALUE 'J',
cns_intyp TYPE vbrk-vbtyp VALUE 'M',
cns_vkorg TYPE vbak-vkorg VALUE 'CA01',
cns_vkorg_US type vbak-vkorg value 'US01', "DEVK903521
cns_parsh TYPE vbpa-parvw VALUE 'WE',
cns_parsp TYPE vbpa-parvw VALUE 'AG',
cns_parre type vbpa-parvw value 'RE', "bill-to
cns_auzwp TYPE vbak-auart VALUE 'ZWP',
cns_auzct TYPE vbak-auart VALUE 'ZCT',
cns_auzif TYPE vbak-auart VALUE 'ZIF',
cns_auztm TYPE vbak-auart VALUE 'ZTM',
cns_fkff TYPE vbrk-fkart VALUE 'ZFF5',
cns_fkos TYPE vbrk-fkart VALUE 'ZOF5',
cns_upd(1) TYPE c VALUE 'S',
cns_mode(1) TYPE c VALUE 'N'.
Internal Tables and Work Areas
DATA: BEGIN OF it_vbpos OCCURS 0,
werks TYPE vbap-werks,
audat TYPE vbak-audat,
auart TYPE vbak-auart,
kunag TYPE vbak-kunnr,
name1_ag TYPE kna1-name1,
kunsh TYPE likp-kunnr,
name1_sh TYPE kna1-name1,
vbeln TYPE vbak-vbeln,
posnr TYPE vbap-posnr,
vbdel TYPE likp-vbeln,
psdel TYPE lips-posnr,
kunre type kunre, "Bill-to Party
name1_re type kna1-name1, "Bill-to Party Name
END OF it_vbpos,
BEGIN OF it_vbpos_temp OCCURS 0,
vgbel TYPE lips-vgbel,
vgpos TYPE lips-vgpos,
vbeln TYPE vbak-vbeln,
posnr TYPE vbap-posnr,
END OF it_vbpos_temp,
BEGIN OF it_report OCCURS 0,
werks TYPE vbap-werks,
vbeln TYPE vbak-vbeln,
vbdel TYPE likp-vbeln,
audat TYPE vbak-audat,
auart TYPE vbak-auart,
name1_ag TYPE kna1-name1,
name1_sh TYPE kna1-name1,
name1_re type kna1-name1, "Bill-to Party Name
mark(1) TYPE c,
END OF it_report,
BEGIN OF it_vbeln OCCURS 0,
vbeln TYPE vbak-vbeln,
END OF it_vbeln,
wa_vbeln LIKE LINE OF it_vbeln,
wa_vbpos LIKE LINE OF it_vbpos,
wa_report LIKE LINE OF it_report,
wa_sel LIKE LINE OF it_report.
DATA: it_vbrp type table of vbrp,
it_vbrk type table of vbrk.
BDC Variables
DATA: BEGIN OF bdc_tab OCCURS 0.
INCLUDE STRUCTURE bdcdata.
DATA: END OF bdc_tab.
DATA: wa_bdc LIKE LINE OF bdc_tab,
it_bdcmess TYPE TABLE OF bdcmsgcoll.
*& Selection-Screen definition
SELECTION-SCREEN BEGIN OF BLOCK block2 WITH FRAME TITLE text-002.
PARAMETERS: p_rdff TYPE c RADIOBUTTON GROUP rad1 DEFAULT 'X',
p_rdos TYPE c RADIOBUTTON GROUP rad1.
SELECTION-SCREEN END OF BLOCK block2.
SELECTION-SCREEN BEGIN OF BLOCK block0 WITH FRAME TITLE text-000.
SELECT-OPTIONS: s_werks FOR vbap-werks OBLIGATORY NO INTERVALS,
s_auart FOR vbak-auart,
s_kunag FOR vbak-kunnr, "Sold-to Party
s_kunnr FOR likp-kunnr, "Ship-to Party
s_kunre for vbak-kunnr, "Bill to Party
s_vdatu FOR vbak-vdatu OBLIGATORY.
SELECTION-SCREEN END OF BLOCK block0.
SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE text-001.
PARAMETERS: p_vgbel TYPE vbak-vgbel.
SELECTION-SCREEN END OF BLOCK block1.
selection-screen begin of block block3 with frame title text-003.
parameters: p_billed RADIOBUTTON GROUP r1,
p_delvd RADIOBUTTON GROUP r1 default 'X',
p_all RADIOBUTTON GROUP r1.
selection-screen end of block block3.
*& Include ZSD_PFGENERATEE01
START-OF-SELECTION.
PERFORM read_report.
END-OF-SELECTION.
SET PF-STATUS 'STAT1000'.
IF it_vbpos[] IS INITIAL.
MESSAGE s999(z001) WITH 'No Data Selected for this criteria'.
ELSE.
PERFORM show_report.
ENDIF.
*& List Events
AT USER-COMMAND.
CASE sy-ucomm.
WHEN 'SELE'.
LOOP AT it_report INTO wa_report.
wa_report-mark = 'X'.
MODIFY it_report FROM wa_report.
ENDLOOP.
PERFORM show_report.
WHEN 'DSEL'.
LOOP AT it_report INTO wa_report.
wa_report-mark = ''.
MODIFY it_report FROM wa_report.
ENDLOOP.
PERFORM show_report.
ENDCASE.
AT LINE-SELECTION.
DO.
READ LINE sy-index FIELD VALUE wa_report-mark wa_report-vbeln
wa_report-vbdel.
IF sy-subrc NE 0.
EXIT.
ELSE.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = wa_report-vbeln
IMPORTING
output = wa_report-vbeln.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = wa_report-vbdel
IMPORTING
output = wa_report-vbdel.
READ TABLE it_report INTO wa_sel
WITH KEY vbeln = wa_report-vbeln.
IF sy-subrc EQ 0.
wa_sel-mark = wa_report-mark.
MODIFY it_report FROM wa_sel INDEX sy-tabix.
ENDIF.
ENDIF.
ENDDO.
REFRESH: it_vbeln.
LOOP AT it_report INTO wa_report WHERE mark EQ 'X'.
CASE 'X'.
WHEN p_rdff.
wa_vbeln = wa_report-vbdel.
WHEN p_rdos.
wa_vbeln = wa_report-vbeln.
ENDCASE.
APPEND wa_vbeln TO it_vbeln.
ENDLOOP.
SORT it_vbeln BY vbeln.
DELETE ADJACENT DUPLICATES FROM it_vbeln.
IF NOT it_vbeln[] IS INITIAL.
PERFORM process_vf01.
ENDIF.
*& Include ZSD_PFGENERATEF01
*& Form read_report
Routine to read applicable orders from database
FORM read_report.
DATA: lwa_lips TYPE lips,
lc_vbeln TYPE vbrk-vbeln.
Retrieve sales orders based on selection criteria where billing doc has not been
created for the delivery yet
REFRESH: it_vbeln, it_vbpos, it_report.
Select into table based on Onsite/Fixed Facility
CASE 'X'.
WHEN p_rdff.
changed for performance reasons (i.e. time-out)
k~vgbel is not in it_vbpos but was in select statment ?
SELECT vbap~werks vbak~audat vbak~auart vbak~kunnr AS kunag
vbak~vbeln vbap~posnr
INTO CORRESPONDING FIELDS OF TABLE it_vbpos
FROM vbak INNER JOIN vbap
ON vbak~mandt = vbap~mandt
AND vbak~vbeln = vbap~vbeln
WHERE vbap~werks IN s_werks
AND vbak~vdatu IN s_vdatu
AND vbak~vkorg in (cns_vkorg,cns_vkorg_US)
AND vbap~oid_ship IN s_kunnr
AND vbak~kunnr IN s_kunag
AND vbak~auart IN s_auart
AND ( vbak~auart = 'ZWP' or vbak~auart = 'ZIF' or
vbak~auart = 'ZCT' or vbak~auart = 'ZTM' or
vbak~auart = 'ZOIL' ).
IF SY-SUBRC = 0.
SELECT vgbel vgpos vbeln posnr FROM lips
INTO CORRESPONDING FIELDS OF TABLE it_vbpos_temp
FOR ALL ENTRIES IN it_vbpos
WHERE vgbel = it_vbpos-vbeln
AND vgpos = it_vbpos-posnr
%_hints oracle 'index ("LIPS" "LIPS~Z01")'.
SORT it_vbpos_temp by vgbel vgpos.
LOOP AT it_vbpos.
READ TABLE it_vbpos_temp
WITH KEY vgbel = it_vbpos-vbeln vgpos = it_vbpos-posnr
BINARY SEARCH.
IF SY-SUBRC = 0.
it_vbpos-vbdel = it_vbpos_temp-vbeln.
it_vbpos-psdel = it_vbpos_temp-posnr.
modify it_vbpos.
ENDIF.
ENDLOOP.
ENDIF.
WHEN p_rdos.
SELECT k~vbeln p~posnr k~kunnr AS kunag k~audat k~auart p~werks k~vgbel
INTO CORRESPONDING FIELDS OF TABLE it_vbpos
FROM vbak AS k INNER JOIN vbap AS p ON k~vbeln = p~vbeln
WHERE p~werks IN s_werks AND k~vdatu IN s_vdatu AND
k~vkorg in (cns_vkorg,cns_vkorg_US) AND "DEVK903521
k~vgbel EQ p_vgbel AND
k~kunnr IN s_kunag AND k~auart IN s_auart AND
p~oid_ship IN s_kunnr.
ENDCASE.
Determine if delivery has been billed out, if not can create PF Invoice - CHANGED
LOOP AT it_vbpos INTO wa_vbpos.
Check Ship-to in
SELECT SINGLE kunnr INTO wa_vbpos-kunsh FROM vbpa
WHERE parvw EQ cns_parsh AND vbeln EQ wa_vbpos-vbeln.
IF sy-subrc NE 0.
DELETE TABLE it_vbpos FROM wa_vbpos.
CONTINUE.
ENDIF.
Check for Bill-to
select single kunnr into wa_vbpos-kunre from vbpa
where parvw eq cns_parre and vbeln eq wa_vbpos-vbeln
and kunnr in s_kunre.
IF sy-subrc NE 0.
DELETE TABLE it_vbpos FROM wa_vbpos.
CONTINUE.
ENDIF.
Get Partner Texts
SELECT SINGLE name1 INTO wa_vbpos-name1_ag FROM kna1
WHERE kunnr EQ wa_vbpos-kunag.
SELECT SINGLE name1 INTO wa_vbpos-name1_sh FROM kna1
WHERE kunnr EQ wa_vbpos-kunsh.
SELECT SINGLE name1 INTO wa_vbpos-name1_re FROM kna1
WHERE kunnr EQ wa_vbpos-kunre.
CASE 'X'.
WHEN p_rdff.
IF p_delvd = 'X'.
optimized for performance reasons i.e. time-out
Check if delivery has been billed out
SELECT SINGLE k~vbeln INTO lc_vbeln
FROM vbrp AS p INNER JOIN vbrk AS k ON p~vbeln = k~vbeln
WHERE p~vgtyp EQ cns_vgtyp AND p~vgbel EQ wa_vbpos-vbdel AND
p~vgpos EQ wa_vbpos-psdel AND k~vbtyp EQ cns_intyp AND
k~fksto NE 'X'.
refresh: it_vbrp, it_vbrk.
select vbeln from vbrp
into corresponding fields of table it_vbrp
where vgtyp = cns_vgtyp and vgbel = wa_vbpos-vbdel
and vgpos = wa_vbpos-psdel
%_hints oracle 'index ("VBRP" "VBRP~Z01")'.
if sy-subrc = 0.
sort it_vbrp by vbeln.
delete adjacent duplicates from it_vbrp comparing vbeln.
select vbeln from vbrk
into corresponding fields of table it_vbrk
for all entries in it_vbrp
where vbeln = it_vbrp-vbeln
and vbtyp = cns_intyp and fksto 'X'.
IF sy-subrc EQ 0.
DELETE TABLE it_vbpos FROM wa_vbpos.
CONTINUE.
ENDIF.
endif.
ELSEIF p_billed = 'X'.
Check if delivery hasn't been billed out
SELECT SINGLE k~vbeln INTO lc_vbeln
FROM vbrp AS p INNER JOIN vbrk AS k ON p~vbeln = k~vbeln
WHERE p~vgtyp EQ cns_vgtyp AND p~vgbel EQ wa_vbpos-vbdel AND
p~vgpos EQ wa_vbpos-psdel AND k~vbtyp EQ cns_intyp AND
k~fksto NE 'X'.
refresh: it_vbrp, it_vbrk.
select vbeln from vbrp
into corresponding fields of table it_vbrp
where vgtyp = cns_vgtyp and vgbel = wa_vbpos-vbdel
and vgpos = wa_vbpos-psdel
%_hints oracle 'index ("VBRP" "VBRP~Z01")'.
if sy-subrc = 0.
sort it_vbrp by vbeln.
delete adjacent duplicates from it_vbrp comparing vbeln.
select vbeln from vbrk
into corresponding fields of table it_vbrk
for all entries in it_vbrp
where vbeln = it_vbrp-vbeln
and vbtyp = cns_intyp and fksto 'X'.
IF sy-subrc NE 0.
DELETE TABLE it_vbpos FROM wa_vbpos.
CONTINUE.
ENDIF.
endif.
ENDIF.
WHEN p_rdos.
IF p_delvd = 'X'.
Check if order has been billed out
SELECT SINGLE * FROM vbrp
WHERE vbeln EQ wa_vbpos-vbeln AND
vgpos EQ wa_vbpos-posnr.
IF sy-subrc EQ 0.
DELETE TABLE it_vbpos FROM wa_vbpos.
CONTINUE.
ENDIF.
ELSEIF p_billed = 'X'.
Check if delivery hasn't been billed out
SELECT SINGLE k~vbeln INTO lc_vbeln
FROM vbrp AS p INNER JOIN vbrk AS k ON pvbeln = kvbeln
WHERE pvgtyp EQ cns_vgtyp AND pvgbel EQ wa_vbpos-vbdel AND
pvgpos EQ wa_vbpos-psdel AND kvbtyp EQ cns_intyp AND
k~fksto NE 'X'.
refresh: it_vbrp, it_vbrk.
select vbeln from vbrp
into corresponding fields of table it_vbrp
where vgtyp = cns_vgtyp and vgbel = wa_vbpos-vbdel
and vgpos = wa_vbpos-psdel
%_hints oracle 'index ("VBRP" "VBRP~Z01")'.
if sy-subrc = 0.
sort it_vbrp by vbeln.
delete adjacent duplicates from it_vbrp comparing vbeln.
select vbeln from vbrk
into corresponding fields of table it_vbrk
for all entries in it_vbrp
where vbeln = it_vbrp-vbeln
and vbtyp = cns_intyp and fksto 'X'.
IF sy-subrc NE 0.
DELETE TABLE it_vbpos FROM wa_vbpos.
CONTINUE.
ENDIF.
endif.
ENDIF.
ENDCASE.
MOVE-CORRESPONDING wa_vbpos TO wa_report.
APPEND wa_report TO it_report.
MODIFY it_vbpos FROM wa_vbpos.
ENDLOOP.
if 'onsite field summary', then process by release sales orders
IF p_rdos = 'X'.
sort it_report by vbeln.
delete adjacent duplicates from it_report comparing vbeln.
else.
SORT it_report BY werks name1_ag name1_sh vbeln.
DELETE ADJACENT DUPLICATES FROM it_report.
endif.
SORT it_report BY name1_sh werks name1_ag vbeln.
ENDFORM. " read_report
*& Form process_vf01
Call transaction VF01 and fill screen table with order values
FORM process_vf01.
DATA: ln_index(2) TYPE n,
lc_field(20) TYPE c,
lc_fkart TYPE vbrk-fkart,
li_lines TYPE i,
lc_msgtxt(99) TYPE c,
lwa_bdcoptions TYPE ctu_params,
lwa_mess LIKE LINE OF it_bdcmess.
REFRESH: it_bdcmess.
lwa_bdcoptions-dismode = cns_mode.
lwa_bdcoptions-updmode = cns_upd.
CASE 'X'.
WHEN p_rdff.
lc_fkart = cns_fkff.
WHEN p_rdos.
lc_fkart = cns_fkos.
ENDCASE.
REFRESH: bdc_tab.
PERFORM update_bdc USING: 'X' 'SAPMV60A' '0102',
' ' 'BDC_CURSOR' 'RV60A-FKART',
' ' 'RV60A-FKART' lc_fkart,
' ' 'BDC_OKCODE' '/00'.
LOOP AT it_vbeln INTO wa_vbeln.
ln_index = sy-tabix.
Up to the second delivery of the BDC add the Delivery to the screen, after that click the More Documents for every entry. logic changed for DEVK902353
CASE ln_index.
WHEN 1.
CONCATENATE 'KOMFK-VBELN' '(' ln_index ')' INTO lc_field.
PERFORM update_bdc USING: ' ' lc_field wa_vbeln.
WHEN 2 OR 3.
IF p_rdos 'X'.
CONCATENATE 'KOMFK-VBELN' '(' ln_index ')' INTO lc_field.
PERFORM update_bdc USING: ' ' lc_field wa_vbeln,
'X' 'SAPMV60A' '0102',
' ' 'BDC_OKCODE' 'FKAN'..
ELSE.
CONCATENATE 'KOMFK-VBELN' '(' ln_index ')' INTO lc_field.
PERFORM update_bdc USING: ' ' lc_field wa_vbeln.
ENDIF.
WHEN OTHERS.
If p_rdos 'X'.
CONCATENATE 'KOMFK-VBELN' '(2)' INTO lc_field.
PERFORM update_bdc USING: ' ' lc_field wa_vbeln,
'X' 'SAPMV60A' '0102',
' ' 'BDC_OKCODE' 'FKAN'.
endif.
ENDCASE.
ENDLOOP.
VF01 will go to a different screen if only one line selected
DESCRIBE TABLE it_vbeln LINES li_lines.
IF li_lines EQ 1.
PERFORM update_bdc USING: 'X' 'SAPMV60A' '0104',
' ' 'BDC_OKCODE' '=SICH'.
ELSE.
PERFORM update_bdc USING: 'X' 'SAPMV60A' '0102',
' ' 'BDC_OKCODE' '=SICH'.
ENDIF.
CALL TRANSACTION 'VF01' USING bdc_tab OPTIONS FROM lwa_bdcoptions
MESSAGES INTO it_bdcmess.
WRITE: / 'BDC Messages:'.
SKIP.
LOOP AT it_bdcmess INTO lwa_mess.
CALL FUNCTION 'RH_MESSAGE_GET'
EXPORTING
arbgb = 'VF'
msgnr = lwa_mess-msgnr
msgv1 = lwa_mess-msgv1
msgv2 = lwa_mess-msgv2
msgv3 = lwa_mess-msgv3
msgv4 = lwa_mess-msgv4
IMPORTING
msgtext = lc_msgtxt
EXCEPTIONS
message_not_found = 1
OTHERS = 2.
WRITE: /5 lc_msgtxt.
ENDLOOP.
ENDFORM. " process_vf01
form update_bdc *
subroutine to add the data to the bdc table for trans. vf01 *
FORM update_bdc USING dynpro field content.
CLEAR bdc_tab.
IF dynpro EQ 'X'.
bdc_tab-program = field.
bdc_tab-dynpro = content.
bdc_tab-dynbegin = 'X'.
ELSE.
bdc_tab-fnam = field.
bdc_tab-fval = content.
ENDIF.
APPEND bdc_tab.
ENDFORM. "UPDATE_BDC
*& Form show_report
Report to Display Available Orders on Screen
FORM show_report .
DATA: l_idx TYPE i.
WRITE: / 'Available Orders/Deliveries for Plant:'.
LOOP AT s_werks.
WRITE: s_werks-low.
ENDLOOP.
SKIP.
FORMAT INTENSIFIED ON COLOR COL_HEADING.
WRITE: /5 text-h01, text-h02.
CASE 'X'.
WHEN p_rdff.
WRITE: text-h06.
ENDCASE.
WRITE: text-h03, text-h04, text-h05, text-h07,
/ sy-uline.
FORMAT INTENSIFIED OFF COLOR OFF.
l_idx = 0.
LOOP AT it_report INTO wa_report.
IF l_idx EQ 0.
FORMAT COLOR COL_NORMAL INTENSIFIED ON.
l_idx = 1.
ELSE.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
l_idx = 0.
ENDIF.
WRITE: / wa_report-mark AS CHECKBOX,
wa_report-auart UNDER text-h01,
wa_report-vbeln UNDER text-h02.
CASE 'X'.
WHEN p_rdff.
WRITE: wa_report-vbdel UNDER text-h06.
ENDCASE.
WRITE: wa_report-audat UNDER text-h03,
wa_report-name1_ag UNDER text-h04,
wa_report-name1_sh UNDER text-h05,
wa_report-name1_re under text-h07.
HIDE: wa_report-mark, wa_report-vbeln, wa_report-vbdel.
ENDLOOP.
ENDFORM. " show_report
Thanks for your kind help.
Aarav.Hi, Anne-Marie;
You may be running into a common issue that is docuemented here:
[SelectionFormula|https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/oss_notes_boj/sdn_oss_boj_erq/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/scn_bosap/notes%7B6163636573733d36393736354636443646363436353344333933393338323636393736354637333631373036453646373436353733354636453735364436323635373233443330333033303331333233303334333833393335%7D.do]
Regards,
Jonathan
Edited by: Jonathan Parminter on Mar 16, 2009 8:03 AM
Maybe you are looking for
-
Hard Drive Failure on HP DV 6000 Pavilion laptop - Need Data Recovery Help HP Pavilion DV 6108 NR, RG365UA, purchased in late 2006 at Best Buy, with Windows XP, upgraded to Service Pack 3. It has a Fujitsu hard disk, 60 gigabyte, partitioned into C:
-
File extraction -File name is timestamped
Hi Team, We are loading the data using flat file. The file will be stored in the application directory. we created a logical fiel name and it is used in the data source. My problem is every day the file is uploaded to the applicaiton directory and t
-
Can we use 2 queue File in same JMS adapter
I am doing a scenario where 2 queues( Queue1file and Queue2file) are coming from MQ series but in the receiver end both are processing one after another or one only at a time. Can I achieve this using a single JMS adapter or can you suggest any other
-
i downloaded osx lion from the app store, but when it finally finished downloading 3.5gb of the the file, during the installation it stops installation and says "the software could not be verified. it may have been corrupted or tampered with during d
-
How to get UserId by WD from different EP server
Hey guys: I deploy my WD application to EP1, and I need to use WD iview to show the same application on the other server, EP2. Everything goes fine on EP1, but the web dynpro iview on EP2 cannot get UserID. Is there any solution to get