BAPI_BUPA_SEARCH - MAXSEL
I have an RFC that does business partner search using BAPI_BUPA_SEARCH. I want the ability to restrict the number of business partner retrieved.
The bapi has a structure OTHERS. In it there is is a field MAXSEL. I specify 20 for MAXSEL in BAPI signature but still get more than 20 BPs.
How is MAXSEL used?
Hi Raynald,
The parameter MAXSEL has some limitations. E.g. : if you try searching for address specific attributes or communication data such as tel / fax, it doesn't always work. Reason - the modules of Address management donot support the concept of maxsel.
BUPA_SEARCH makes a call to Address management modules internally, and thus it cannot take care of this parameter for some cases.
I'd suggest that you activate the search help BUPA_ADR. Look into note 595442. This creates a new search table BUTADRSEARCH that is in control of the BP, not address, but combines the address fields requierd for a quick search. This should solve the problem.
Cheers,
Rishu.
Similar Messages
-
Problem with searching for 'empty' emails with BAPI_BUPA_SEARCH
Dear ABAP'ers.
I have got a small problem with BAPI_BUPA_SEARCH.
I Use this BAPI to search for Business Partners with the Email condition.
I put rhe Email to lv_email variable, it works ok.
lv_email = ' '
CALL FUNCTION 'BAPI_BUPA_SEARCH'
EXPORTING
email = lv_email
TABLES
searchresult = lt_searchresult <= returns no BuPas
return = ls_bapiret2 .
But I need to have a possibility to search for such Business Partners who have got no email address. Unfortunatellu when I pass an empty lv_email to BAPI, it returns no Business Partners whilst such BuPas exist in database.
Is there some possibility to search for those BuPas who have got no email address assigned?
I will be thankful for help.
Regards,
P.Can you query ADR6 table where SMTP_ADDR = space.
and pick the PERSNUMBER or ADDRNUMBER and pick the Patners related to that .. -
BAPI_BUPA_SEARCH && mc_name1
We use the function BAPI_BUPA_SEARCH to search for BP's. This function has as input parameter: CENTRALDATA with the following fields:
PARTNER - BU_PARTNER - CHAR 10
MC_NAME1 - BU_MCNAME1 - CHAR 35 - Search Help Field 1 (Name 1/Last Name)
MC_NAME2 - BU_MCNAME2 - CHAR 35 - Search Help Field 2 (Name 2/First Name)
SEARCHTERM1 - BU_SORT1 - CHAR 20
SEARCHTERM2 - BU_SORT2 - CHAR 20
PARTNERCATEGORY - BU_TYPE - CHAR 1
The problem is that MC_NAME1 has only 35 charaters.
In BUT000 the fields NAME_ORGx, NAME_FIRST and NAME_LAST all have 40 characters.
When we now search a BP with a name of 40 characters the function does not find this BP.
f.e.
BP 1: NAME_ORG1 = "test name" ---> MC_NAME1 = "TEST NAME"
BP 2: NAME_ORG1 = "test test name" ---> MC_NAME1 = "TEST TEST NAME"
BP 3: NAME_ORG1 = "test test test test test test test name" ---> MC_NAME1 = "TEST TEST TEST TEST TEST TEST TEST "
The function BAPI_BUPA_SEARCH with parameter CENTRALDATA-MC_NAME1 = "name" will only find BP 1 and BP 2, BP 3 has no "name" in his MC_NAME1 anymore because of the lenght of this field.
How can this issue be solved?
Or do we need to use another function?
Kind regards,
LieselotHi Lieselot,
I'm responding to your initial query...
Your observations and analysis about the issue is quite correct - the name fields can store 40 characters, but the search takes only 35 characters into account. This is a technical limitation of the business partner search, and is a known issue in SAP.
The limitation to repair it is that the name search fields are also used in the address components, so there are a lot of dependencies. Also, it is quite rare to see names more than 35 characters in length.
Having said this, i recognize that this is a genuine requirement for you - and many customers have faced similar issues. The approach they follow when they are sure to have many many BP's with name >35 characters is this :
Create a new field using EEW, and add this field to BUT000. This field can be of length 40 characters, and can be used to store the entire converted name. The search methods can now be modified to search by this Z field as well, so the search will always find even the long names.
The solution is tedious to implement but if almost every other BP in your systems has a long name, its worth the effort in the long run.
Hope this helps.
Cheers,
Rishu. -
BAPI to search for customer in CRM based on search terms
Hi,
Could anyone please tell me if there is a function module in CRM to search for BP's based on search terms. ( Just as we could enter '*' in search terms in transaction BP and get a list of customers ).
Thanks in advance,
SahilHi Sahil,
You can make use of BAPI_BUPA_SEARCH.
In the import parameter CENTRALDATA you can pass the
search terms.
Ranjit -
How to do search of business partner data, using a message from external sy
Hi CRM Gems,
please send the answer to the following question.
1.How to do search of business partner data, using a message from external system. What FMs, BAPI etc that can be used for this functionality?
your answer will be valuble to me.
Regards,
Krishna..Hi krishna,
Look at BAPI BAPI_BUPA_SEARCH.
Regards.
Manuel -
SENDING TEXT FILE AS AN ATTACHMENT
Hi,
I want to send an email as a TEXT file attachment.
Thanks
Vikranth Khimavathhi,
Use the FM SO_NEW_DOCUMENT_ATT_SEND_API1 to send mail with an attachment. Here is the sample code.
FUNCTION Z_SEND_MAIL.
""Local interface:
*" IMPORTING
*" VALUE(MESSAGE) TYPE STRING OPTIONAL
*" VALUE(RECEIVER_MAIL) TYPE STRING OPTIONAL
*" VALUE(TO) TYPE STRING OPTIONAL
data for send function
DATA doc_data TYPE sodocchgi1.
DATA object_id TYPE soodk.
DATA objcont TYPE TABLE OF soli INITIAL SIZE 10.
DATA wa_objcont LIKE LINE OF objcont.
DATA receiver TYPE TABLE OF somlreci1 INITIAL SIZE 1.
DATA wa_receiver LIKE LINE OF receiver.
move message
TO doc_data-obj_descr .
This is the subject for your mail.
WRITE 'Sub:test Mail' TO doc_data-obj_descr.
This is the body of your mail.
concatenate ' Hi ' to into wa_objcont-line separated by space.
append wa_objcont to objcont.
wa_objcont-line = message.
append wa_objcont to objcont.
Specify receipent id.
MOVE: RECEIVER_MAIL TO wa_receiver-receiver,
'X' TO wa_receiver-express,
'U' TO wa_receiver-rec_type.
APPEND wa_receiver TO receiver.
Finally call the function module.
CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'
EXPORTING
document_data = doc_data
put_in_outbox = 'X' "Save Document in Outbox
COMMIT_WORK = 'X'
IMPORTING
new_object_id = object_id
TABLES
object_content = objcont
receivers = receiver
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.
SUBMIT rsconn01 USING SELECTION-SET 'SAP&CONNECTINT' AND RETURN.
ENDFUNCTION.
REPORT RSCONN01 MESSAGE-ID XS NO STANDARD PAGE HEADING.
INCLUDE <SYMBOL>. " 11.11.96
TYPE-POOLS: SX.
TYPE-POOLS: KKBLO.
PARAMETERS: MODE(3) TYPE C DEFAULT '*',
OUTPUT TYPE C DEFAULT ' '. "B20K072036 new parameter
selection-screen skip.
parameters maxjobs type sx_maxjobs default 1.
parameters rfcgroup type bdfields-rfcgr.
selection-screen skip.
parameters maxpsize type sx_maxpsize default 1000.
parameters minpsize type sx_minpsize default 20.
parameters maxsel type sx_maxqrows default 20000.
parameters timepo type sx_timepo default 2.
parameters timeout type sx_arfctimeout default 100.
parameters commit type sx_commit default 1.
data address_types type sx_addrtab.
data job_params type sxjobs.
data jobdata type sxjobdata.
--- initialization -
initialization.
get default parameters
call function 'SX_JOBDATA_GET'
changing
jobdata = jobdata.
give defaults to parameters
maxjobs = jobdata-maxjobs.
maxpsize = jobdata-maxpsize.
minpsize = jobdata-minpsize.
maxsel = jobdata-maxsel.
timepo = jobdata-timepo.
timeout = jobdata-arfc_timeout.
commit = jobdata-commit_after.
--- start-of-selection -
start-of-selection.
perform addr_type_to_table using mode
changing address_types.
job_params-maxjobs = maxjobs.
job_params-rfcgroup = rfcgroup.
job_params-maxpsize = maxpsize.
job_params-minpsize = minpsize.
job_params-maxsel = maxsel.
job_params-timepo = timepo.
job_params-arfc_timeout = timeout.
job_params-commit_after = commit.
call function 'SX_OBJECTS_SEND'
exporting
address_types = address_types
output = output
job_params = job_params
exceptions
others = 1.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
exit.
TABLES: SXADDRTYPE.
DATA: selection type SX_ADDRTAB,
NR_SO_OBJECTS TYPE I,
OBJ_CAT TYPE SX_OBJ_CAT OCCURS 20 WITH HEADER LINE.
if sy-batch = 'X'.
message I078 with 'RSCONN01' SY-HOST SY-MANDT.
endif.
*fill selection table
refresh selection.
if mode = '*'.
clear mode.
endif.
IF NOT ( MODE IS INITIAL ).
SELECT SINGLE * FROM SXADDRTYPE WHERE ADDR_TYPE EQ MODE.
IF SY-SUBRC NE 0.
IF OUTPUT EQ 'X'.
WRITE: MODE, TEXT-001, TEXT-002.
ENDIF.
EXIT.
ENDIF.
IF SXADDRTYPE-METHOD NE 'SAPCONNECT'.
IF OUTPUT EQ 'X'.
WRITE: MODE, TEXT-003, TEXT-004, TEXT-005.
ENDIF.
EXIT.
ENDIF.
append sxaddrtype-addr_type to selection.
ELSE.
select * from sxaddrtype
where method = 'SAPCONNECT'
and extern = sx_true.
case sxaddrtype-addr_type.
when 'INT' or 'FAX' or 'PAG' or
'PRT' or 'RML' or 'X40'.
append sxaddrtype-addr_type to selection.
endcase.
endselect.
ENDIF.
CALL FUNCTION 'SX_OBJECTS_SEND'
EXPORTING
ADDRESS_TYPES = SELECTION
IMPORTING
NR_SO_OBJECTS = NR_SO_OBJECTS
TABLES
OBJ_CAT = OBJ_CAT
EXCEPTIONS
INTERNAL_ERROR = 1
OTHERS = 2.
IF SY-SUBRC NE 0.
IF OUTPUT EQ 'X'.
Always write out this error message:
WRITE: TEXT-006, SY-SUBRC.
ENDIF.
EXIT.
ENDIF.
IF NR_SO_OBJECTS = 0.
IF OUTPUT EQ 'X'.
WRITE: TEXT-007.
ENDIF.
EXIT.
ENDIF.
IF OUTPUT EQ 'X'.
PERFORM DISPLAY_OBJECT_CATALOGUE.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR MODE.
PERFORM F_SHOW_ADDR_TYPES CHANGING MODE.
AT SELECTION-SCREEN ON HELP-REQUEST FOR OUTPUT.
PERFORM F_HELP_OUTPUT.
*& Form addr_type_to_table
text
form addr_type_to_table using address_type type sx_addrtyp
changing address_types type sx_addrtab.
data adrtp_wa type sxaddrtype.
data adrtp type sx_addrtyp.
if address_type <> '*'.
adrtp = address_type.
endif.
if not adrtp is initial.
select single * from sxaddrtype into adrtp_wa
where addr_type = adrtp.
if sy-subrc <> 0.
message i009 with adrtp.
exit.
endif.
if adrtp_wa-method ne 'SAPCONNECT'.
message i027 with adrtp.
exit.
endif.
append adrtp_wa-addr_type to address_types.
else.
select * from sxaddrtype into adrtp_wa
where method = 'SAPCONNECT'
and extern = sx_true.
case adrtp_wa-addr_type.
when 'INT' or 'FAX' or 'PAG' or
'PRT' or 'RML' or 'X40'.
append adrtp_wa-addr_type to address_types.
endcase.
endselect.
endif.
endform. " addr_type_to_table
*& Form DISPLAY_OBJECT_CATALOGUE
Anzeige der Liste der zum Versenden selektierten Objekte
--> p1 text
<-- p2 text
FORM DISPLAY_OBJECT_CATALOGUE.
DATA: FIELD_LST TYPE KKBLO_T_FIELDCAT.
DATA: FIELD_CAT TYPE KKBLO_FIELDCAT.
DATA: IS_LAYOUT TYPE KKBLO_LAYOUT.
IS_LAYOUT-NO_ZEBRA = 'X'.
FIELD_CAT-REF_TABNAME = 'SXOBJCAT'.
FIELD_CAT-NO_SUM = 'X'.
FIELD_CAT-JUST = 'L'.
FIELD_CAT-OUTPUTLEN = 3.
FIELD_CAT-REPTEXT = 'Trc'.
FIELD_CAT-FIELDNAME = 'DISPL_TRC'.
FIELD_CAT-HOTSPOT = 'X'.
FIELD_CAT-SYMBOL = 'X'.
APPEND FIELD_CAT TO FIELD_LST.
FIELD_CAT-SYMBOL = ' '.
FIELD_CAT-OUTPUTLEN = 0.
FIELD_CAT-HOTSPOT = ' '.
FIELD_CAT-REPTEXT = ' '.
CLEAR: FIELD_CAT-NO_ZERO, FIELD_CAT-KEY .
FIELD_CAT-FIELDNAME = 'ID'. APPEND FIELD_CAT TO FIELD_LST.
FIELD_CAT-FIELDNAME = 'TITLE'. APPEND FIELD_CAT TO FIELD_LST.
FIELD_CAT-FIELDNAME = 'TYPE'. APPEND FIELD_CAT TO FIELD_LST.
FIELD_CAT-FIELDNAME = 'NR_RECIP'. APPEND FIELD_CAT TO FIELD_LST.
LOOP AT FIELD_LST INTO FIELD_CAT.
FIELD_CAT-COL_POS = SY-TABIX.
MODIFY FIELD_LST FROM FIELD_CAT.
ENDLOOP.
LOOP AT OBJ_CAT.
OBJ_CAT-DISPL_TRC = SYM_PENCIL.
MODIFY OBJ_CAT.
ENDLOOP.
CALL FUNCTION 'K_KKB_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = 'RSCONN01'
I_CALLBACK_USER_COMMAND = 'CB_OL_UCOMM'
I_CALLBACK_TOP_OF_PAGE = 'CB_OL_TOP'
I_CALLBACK_PF_STATUS_SET = 'CB_OL_PFSTATUS'
I_TABNAME = 'OBJ_CAT'
IS_LAYOUT = IS_LAYOUT
IT_FIELDCAT = FIELD_LST
TABLES
T_OUTTAB = OBJ_CAT
EXCEPTIONS
OTHERS = 1.
ENDFORM. " DISPLAY_OBJECT_CATALOGUE
*& Form CB_OL_PFSTATUS
Callback Funktion (wird aus Listtool heraus gerufen) *
--> p1 text
<-- p2 text
FORM CB_OL_PFSTATUS
USING EXTAB TYPE KKBLO_T_EXTAB.
SET PF-STATUS 'CATALOG' EXCLUDING EXTAB.
SET TITLEBAR 'CAT'.
ENDFORM. " CB_OL_PFSTATUS
*& Form CB_OL_TOP
Callback Funktion (wird aus Listtool heraus gerufen) *
--> p1 text
<-- p2 text
FORM CB_OL_TOP.
ENDFORM. " CB_OL_TOP
*& Form CB_OL_UCOMM
text *
--> p1 text
<-- p2 text
FORM CB_OL_UCOMM
USING UCOMM LIKE SY-UCOMM
SELFIELD TYPE KKBLO_SELFIELD.
DATA: NUMC5(5) TYPE N.
NUMC5 = SELFIELD-TABINDEX.
CASE UCOMM.
WHEN 'PIC1'.
CASE SELFIELD-SEL_TAB_FIELD.
WHEN 'OBJ_CAT-DISPL_TRC' OR 'OBJ_CAT-TITLE' OR 'OBJ_CAT-ID'.
READ TABLE OBJ_CAT INDEX SELFIELD-TABINDEX.
IF SY-SUBRC NE 0.
MESSAGE E042.
ENDIF.
SUBMIT RSWTTR01
WITH P_TYPE = 'D'
WITH P_UNAME = SPACE
WITH P_OBJ = OBJ_CAT-ID AND RETURN.
WHEN OTHERS.
MESSAGE I041 WITH NUMC5 SELFIELD-SEL_TAB_FIELD UCOMM.
ENDCASE.
WHEN OTHERS.
MESSAGE I041 WITH NUMC5 SELFIELD-SEL_TAB_FIELD UCOMM.
ENDCASE.
ENDFORM. " CB_OL_UCOMM
*& Form F_SHOW_ADDR_TYPES
text
<--P_MODE text *
FORM F_SHOW_ADDR_TYPES CHANGING A_TYPE.
DATA: HELP_INFO LIKE HELP_INFO
, sel_value like help_info-fldvalue
, CUCOL LIKE SY-CUCOL
, CUROW LIKE SY-CUROW
, value like help_info-fldvalue value 'SE38'
, IND LIKE SY-INDEX
, C_SY_SUBRC(3) TYPE C
DATA: BEGIN OF FIELDS OCCURS 5.
INCLUDE STRUCTURE HELP_VALUE.
DATA: END OF FIELDS.
DATA: BEGIN OF LIST_OF_FIELDS OCCURS 5,
NAME(21) TYPE C.
DATA: END OF LIST_OF_FIELDS.
DATA: BEGIN OF FULL_LIST OCCURS 5,
ADDRESS_TYPE LIKE SXADDRTYPE-ADDR_TYPE,
END OF FULL_LIST.
REFRESH FIELDS.
REFRESH LIST_OF_FIELDS.
REFRESH FULL_LIST.
HELP_INFO-TABNAME = 'SXADDRTYPE'.
HELP_INFO-FIELDNAME = 'ADDR_TYPE'.
SELECT * FROM SXADDRTYPE.
IF SXADDRTYPE-METHOD NE 'SAPCONNECT'
OR SXADDRTYPE-EXTERN NE SX_TRUE.
CONTINUE.
ENDIF.
MOVE SXADDRTYPE-ADDR_TYPE TO FULL_LIST-ADDRESS_TYPE.
APPEND FULL_LIST.
ENDSELECT.
MOVE '*' TO FULL_LIST-ADDRESS_TYPE.
APPEND FULL_LIST.
LIST_OF_FIELDS-NAME = 'SXADDRTYPE-ADDR_TYPE'.
APPEND LIST_OF_FIELDS.
CALL FUNCTION 'TRANSFER_NAMES_TO_FIELDS'
EXPORTING
SELECTFIELD = HELP_INFO-FIELDNAME
TABLES
FIELDS = FIELDS
NAMELIST = LIST_OF_FIELDS
EXCEPTIONS
WRONG_FORMAT_GIVEN = 1
OTHERS = 2.
CALL FUNCTION 'HELP_VALUES_GET_WITH_VALUE'
EXPORTING
DISPLAY = ' '
FIELDNAME = HELP_INFO-FIELDNAME
TABNAME = HELP_INFO-TABNAME
GIVEN_VALUE = HELP_INFO-FLDVALUE
TITEL = TEXT-002
IMPORTING
SELECT_VALUE = HELP_INFO-FLDVALUE
SELECT_INDEX = IND
TABLES
FIELDS = FIELDS
VALUETAB = FULL_LIST
EXCEPTIONS
FIELD_NOT_IN_DDIC = 1
MORE_THEN_ONE_SELECTFIELD = 2
NO_SELECTFIELD = 3
OTHERS = 4.
C_SY_SUBRC = SY-SUBRC.
CASE SY-SUBRC.
WHEN '0'.
READ TABLE FULL_LIST INTO A_TYPE INDEX IND.
WHEN OTHERS.
MESSAGE E022 WITH C_SY_SUBRC.
ENDCASE.
ENDFORM. " F_SHOW_ADDR_TYPES
*& Form F_HELP_OUTPUT
text
--> p1 text
<-- p2 text
FORM F_HELP_OUTPUT.
DATA: CANCELLED TYPE C,
C_SY_SUBRC(8) TYPE C.
CALL FUNCTION 'POPUP_DISPLAY_TEXT'
EXPORTING
LANGUAGE = SY-LANGU
POPUP_TITLE = 'SAPconnect'
TEXT_OBJECT = 'RSCONN01_F1_OUTPUT_40B'
IMPORTING
CANCELLED = CANCELLED
EXCEPTIONS
TEXT_NOT_FOUND = 1
OTHERS = 2.
C_SY_SUBRC = SY-SUBRC.
IF SY-SUBRC NE 0.
MESSAGE E035 WITH C_SY_SUBRC. leads to dump !
ENDIF.
ENDFORM. " F_HELP_OUTPUT
Regards,
Richa -
Use of additional fields win IC Winclient BP Search
Hi
Im trying to use the HOUSE_NUM2 field in structure CCMSEARCH_STRUCT to search for a BP in the IC Win Client (CIC0) in CRM.
I can get the HTML page to pass the field back to CCMSEARCH_STRUCT, but after several dynamic function calls the program ends up calling FM BAPI_BUPA_SEARCH which does not have the field HOUSE_NUM2 as an input parameter.
Is it possible to configure the search to call an FM that uses that field as well? (without repairing the SAP code)
I have followed these steps:
1) Copied O_ISU_BPFINDER_BUTTON to ZO_ISU_BPFINDER_BUTTON, changed the HTML and re-imported it.
The changes were to remove some fields (ie IBASE components) and add the new input field HOUSE_NUM2.
Here is the relevant HTML tag:
<TR>
<TH align=left width=28%><!%%STREET_NO%></TH>
<TD width=72%><NOBR>
<INPUT name=HOUSE_NUM1 size=6 maxLength=10 type=TEXT/PLAIN>
<INPUT name=STREET size=25 maxLength=60 type=TEXT/PLAIN>
<INPUT name=HOUSE_NUM2 size=6 maxLength=10 type=TEXT/PLAIN>
</NOBR></TD></TR>
2) I have copied the entries for O_ISU_BPFINDER_BUTTON in transaction CRMC_CIC_SEARCH_CNTR and ensured that the followin entry is there:
ZO_ISU_BPFINDER_BUTTON CCMADDRESSFIELDS HOUSE_NUM2 X
3) I have created a new search profile in transaction CRMC_CIC_SEARCH_RULE with the following setttings:
HTML for BP Search = ZO_ISU_BPFINDER_BUTTON
Under priorities: CCMADDRESSFIELDS CCMCS_ADDR_SEARCH_CONTROL 1
(This is the only relevant entry from what I can tell in Debug mode)
Everything else works, and I can see the relevant data being passed to SAP, but by the time the actual search takes place in BAPI_BUPA_SEARCH HOUSE_NUM2 is not available as a search parameter.
I have searched these forums and come across a couple of threads that seems to imply that it should just work if I follow these steps, but I can only assume that I am using an incorrect search Function Module
Thanks for your help
Regards EstiHi Siva
What is the transaction to look at this query? I have not seen any evidence that the program accesses this query, but it is worth having a look I guess.
The sequence of Function calls are:
CCMCS_BP_SEARCH_RULES
CCMCS_BP_SEARCH_CONTROL
CCMCS_BP_ADDR_SEARCH2
CCMCS_BP_SEARCH2
(Up to this point it uses structure CCMADDRESSFIELDS, and has accesss to HOUSE_NUM2)
Then it calls BAPI_BUPA_MAIN
It might be that I will have to repair CCMCS_BP_SEARCH2 in the end, but I'd like to be sure that it is my only option, as I do not want to change SAP standard code unnecessarily.
Cheers
Esti -
ALV Report to KSB1 Report-- KSB1 Report outputs in Non-ALV Format
Hi Gurus,
I am calling KSB1 from report ALV output.
After execution of KSB1, Report outputs in Classical report format.
While I execute KSB1 manually it shows in ALV Report.
From my report how to retain output of KSB1 in ALV Format.
Thanks in advance.Add some lines to BDC to force ALV display, like
perform bdc_dynpro using 'RKAEP000' '0100'.
perform bdc_field using 'BDC_CURSOR'
'KOSTL-LOW'.
* Call the option
perform bdc_field using 'BDC_OKCODE'
'=UCSS'.
* Force grid
perform bdc_dynpro using 'SAPLKAE2' '0200'.
perform bdc_field using 'BDC_CURSOR'
'KAEP_SETT-MAXSEL'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'KAEP_SETT-USEGRD'
record-USEGRD_004.
perform bdc_field using 'KAEP_SETT-MAXSEL'
record-MAXSEL_005.
* back to initial screen
perform bdc_dynpro using 'RKAEP000' '0100'.
Regards,
Raymond -
BAPI_BUPA_SEARCH_2
Please provide me a sample source code for execution of "BAPI_BUPA_SEARCH" or "BAPI_BUPA_SEARCH_2" BAPI.
Basic problem I am getting is at
JCO.Structure addrDataStr=input.getStructure("ADDRESSDATA")
I am not able to set the proper value in JCO.Structure. Please help me.
Following is the code I am trying to execute
JCO.Client mConnection = null;
IRepository mRepository;
public JCO.Function createFunction(String name) {
try {
return mRepository.getFunctionTemplate(name.toUpperCase()).getFunction();
} catch (Exception ex) {
ex.printStackTrace();
return null;
private void getBussinessPartner(){
try {
mConnection = JCO.createClient("800","userID","******","EN","SAPCRMSystem_IP","00");
// Open the connection
mConnection.connect();
mRepository = new JCO.Repository("SharedRepository", mConnection);
JCO.Function function = this.createFunction("BAPI_BUPA_SEARCH_2");
// Fill in input parameters
JCO.ParameterList input = function.getImportParameterList();
JCO.Structure addrDataStr=input.getStructure("ADDRESSDATA"); //SEARCHRESULT
addrDataStr.setValue("Germany","COUNTRY");
//addrDataStr.setValue("Frankfurt", "CITY1");
mConnection.execute(function);
if(function.getExportParameterList()!=null){//It is always null
JCO.Structure returnStructure = function.getExportParameterList().getStructure(0);
for (int i = 0; i < returnStructure.getFieldCount(); i++) {
System.out.println( returnStructure.getField(i).getName()+" : " + returnStructure.getString(i));
}catch (Exception ex) {
ex.printStackTrace();
System.out.println("Caught an exception: \n" + ex);
finally {
// do not forget to close the mConnection connection
if (mConnection != null) mConnection.disconnect();not needed now. resolved it.
-
Hi CRM Tech guys,
plz tell me what are the reuirements in ABAP interfacing to CRM. i want some function modules , bapis, and needed middleware concepts.
plz answer me.
regards
ram.Hi Ram Krishna,
Some of the FM in CRM:
GUID_CREATE Create GUID for a Business Transaction
BAPI_BUSPROCESSND_CREATEMULTI Bapi to create Service Contracts programmatically. Pass the inputfields to be created in the contract.
Note: BAPI_BUSPROCESSND_SAVE must be called after this function call to save the Service Contract.
BAPI_BUSPROCESSND_SAVE Bapi to save the Service Contracts.
BAPI_ECRMISUTO_INIT Initialize the creation of Ibase in CRM
BAPI_ECRMISUTO_CREATEMULTIPLE Create the Installed Base and its components.
Note:
Always call the function module
BAPI_TRANSACTION_COMMIT
after call to any Bapi
CRM_IBASE_INITIALIZE Initialize the changes to be done in Ibase in CRM
CRM_IBASE_SAVE Call this FM to save the changes in the Ibase
BAPI_BUPA_FRG0130_CREATE Bapi to create Business Agreement for a customer
BAPI_BUPA_ADDRESS_ADD Add invoice address for business partner. Pass the address type as 'rechnung' to add invoice address
BAPI_BUPA_BANKDETAIL_ADD Add bank details for the business partner
BAPI_BUPA_CREATE_FROM_DATA BAPI for business partner creation as Organization, Person or Group in general role. Same BAPI can be used to create Contact Person for the Business Partner
BAPI_BUPR_RELATIONSHIP_CREATE Function module to establish the Business Partner and Contact Person
Relationship. Pass the Relationship Category as BUR001
BAPI_BUPA_ROLE_ADD Add Role to Business Partner for e.g. Sold to Party CRM001, Contact Person BUP001
BAPI_BUPA_TAX_ADD BAPI Add Tax Number for the existing Business Partner
BAPI_BUPA_FRG0040_CREATE Create Classification Data for a Business Partner
BAPI_BUPA_FRG0130_CREATE Create Business Agreement
BAPI_BUSPROCESSND_CREATEMULTI BAPI to create Contract. Populate the Header and Line Item Details before calling the BAPI
BAPI_BUPA_ADDRESSES_GET Determine All Addresses
BAPI_BUPA_ADDRESS_GETDETAIL Read Address
BAPI_BUPA_ADDRESS_GET_NUMBERS Read Address Numbers
BAPI_BUPA_BANKDETAILS_GET Determine All Bank Details
BAPI_BUPA_BANKDETAIL_GETDETAIL Read Bank Details
BAPI_BUPA_BANKDETAIL_NUMBERS Read Bank Details Numbers
BAPI_BUPA_CENTRAL_GETDETAIL Read Central Data
BAPI_BUPA_EXISTENCE_CHECK Check Existence of Business Partner
BAPI_BUPA_GET_NUMBERS Read Business Partner Numbers
BAPI_BUPA_RELATIONSHIPS_GET Determine All BP Relationships
BAPI_BUPA_ROLES_GET Determine All Roles
BAPI_BUPA_ROLE_EXISTENCE_CHECK Check Existence of Role
BAPI_BUPA_SEARCH Search Business Partner for Telephone, E-Mail, Address
BAPI_BUPA_STATUS_GETDETAIL Business Partner: Read Status
BAPI_BUPR_ACTIVITYP_EXISTCHECK Check Existence of Contact Partner Relationship
BAPI_BUPR_CONTP_ADDRESSES_GET Read Contact Person Relationship Addresses
BAPI_BUPR_CONTP_ADDR_GETDETAIL Read Contact Person Relationship Addresses
BAPI_BUPR_CONTP_GETDETAIL Read Contact Person Relationship
BAPI_BUPR_EMPLO_ADDRESSES_GET Read Contact Person Relationship Addresses
BAPI_BUPR_EMPLO_ADDR_GETDETAIL Read Employee Relationship Address
BAPI_BUPR_EMPLO_GETDETAIL Read Employee Relationship
BAPI_BUPR_RELATIONSHIP_GET Read General Relationship
BAPI_BUPR_RELSHIP_CHECKEXIST Check Existence of General Relationship
BAPI_BUPR_RELSHIP_GET_DETAIL Read General Relationship
BAPI_BUPR_RESP_EMPLO_CHEKEXIST Read Relationship of Employee Responsible
BUPA_PARTNER_CONTACT_SEARCH Searches business partners for telephone, E-Mail, address
ECRM_ISU_COMP_BY_ADDRESS Check for Existence of Ibase
CRM_ORDER_GET_HEADER_GUID Get Header GUID for Item GUID pass ref_kind as b
CRM_ORDERADM_H_READ_OW Read the Header Details for a Business Transaction. Pass the Header guid.
CRM_ORDERADM_I_READ_OW Read the Line Item Details for a line item. Pass the line item guid.
CRM_ORDER_READ Get all the Service Contract details.
Note: Pass the requested objects to fetch only the required details.
This can also be used to get the details of activities/leads/opportunities etc.
CRM_ORDER_GETSTATUS Get status of the Service Contract
Note: CRM_ORDER_READ Function Module
1. CRM_ORDER_READ is a function module which can be used to get the details of any business transaction based on the Header GUID, Item GUID or both.
2. Always pass the IT_REQUESTED_OBJECTS structure to this function module to fetch the required details only.
3. This function module can not be executed directly instead SAP has provided a report CRM_ORDER_READ for the same for testing purpose. We can pass Business Transaction Number (Object ID), Header GUID or Item GUID to this report to get the required details.
For other Details: just go through : http://help.sap.com/saphelp_crm50/helpdata/en/1a/023d63b8387c4a8dfea6592f3a23a7/frameset.htm
Hope it will help
Regards,
Arjun
<b>Reward points if it helps</b> -
How to search Business Partner filter by country
As topic above, how to search Business Partner filter by country, which table is involve?
Appreciate your kind effort
ThxHi
1) you can use the function module 'BAPI_BUPA_SEARCH' to filter BP by country. In the address data field, you can enter country code (say IN for India) and this will return you the list of BP's belonging to the country.
2) You can use view BBPV_BUPA_ADDR to see the BP's for a particular country.
for this view, if you look at the "Table/Join Conditions" tab, you can see the underlying tables used for join ->
BUT000 ->BuPA Master
BUT020 ->BP Address table
ADRC ->Address services.
Hope the above info helps.
Regards
Nisha -
Retreive email id during BP creation, before saving BP
hi,
I need the email ID that the user enters while creating a new BP. How do i get it? Is there any FM ?
thanks,
Shan.Hi,
You can use below function Modules;
BUPA_PARTNER_CONTACT_SEARCH :Searches business partners for telephone, E-Mail, address.
BAPI_BUPA_SEARCH : Search Business Partner for Telephone, E-Mail, Address.
*BAPI_BUPA_CENTRAL_GETDETAIL *Read Central Data
Regards,
Amol Tambe
SAP CRM Technical Consultant. -
Post Code : Want to determine the list of Business Partner !!!
Hi all
I have given Post Code of BP.
I want to determine the <b>list of Business Partner</b> present in the specified <b>Post Code Location</b>.
Is their any direct way around to determine the list of
Business Partner ? or Please let me know the possible ways to determine the BPs with the given Post Code !!!!
Many Thanks
JackHi Jack,
Have a look at BAPI_BUPA_SEARCH function module.
Enter the Post Code in the ADDRESSDATA structure and it will return list of Business Partners for the same.
Also ,have a look at BUPA_PARTNER_CONTACT_SEARCH function module.
<b>Reward points if it helps.</b>
Message was edited by: Amit Mishra -
Function Module Required for fetching contact details from BUT000
Hi Everybody.
I have created a contact using transaction BP.
these details according to me will get saved in standard table BUT000.
Now i need standard FM used for fetching all these Contact details.
Help me i am new to CRM.Hi Amit,
Please check the following:
Data Retrieval Function Modules:
Name Description
BAPI_BUPA_ADDRESSES_GET Determine All Addresses
BAPI_BUPA_ADDRESS_GETDETAIL Read Address
BAPI_BUPA_ADDRESS_GET_NUMBERS Read Address Numbers
BAPI_BUPA_BANKDETAILS_GET Determine All Bank Details
BAPI_BUPA_BANKDETAIL_GETDETAIL Read Bank Details
BAPI_BUPA_BANKDETAIL_NUMBERS Read Bank Details Numbers
BAPI_BUPA_CENTRAL_GETDETAIL Read Central Data
BAPI_BUPA_EXISTENCE_CHECK Check Existence of Business Partner
BAPI_BUPA_GET_NUMBERS Read Business Partner Numbers
BAPI_BUPA_RELATIONSHIPS_GET Determine All BP Relationships
BAPI_BUPA_ROLES_GET Determine All Roles
BAPI_BUPA_ROLE_EXISTENCE_CHECK Check Existence of Role
BAPI_BUPA_SEARCH Search Business Partner for Telephone, E-Mail, Address
BAPI_BUPA_STATUS_GETDETAIL Business Partner: Read Status
BAPI_BUPR_ACTIVITYP_EXISTCHECK Check Existence of Contact Partner Relationship
BAPI_BUPR_CONTP_ADDRESSES_GET Read Contact Person Relationship Addresses
BAPI_BUPR_CONTP_ADDR_GETDETAIL Read Contact Person Relationship Addresses
BAPI_BUPR_CONTP_GETDETAIL Read Contact Person Relationship
BAPI_BUPR_EMPLO_ADDRESSES_GET Read Contact Person Relationship Addresses
BAPI_BUPR_EMPLO_ADDR_GETDETAIL Read Employee Relationship Address
BAPI_BUPR_EMPLO_GETDETAIL Read Employee Relationship
BAPI_BUPR_RELATIONSHIP_GET Read General Relationship
BAPI_BUPR_RELSHIP_CHECKEXIST Check Existence of General Relationship
BAPI_BUPR_RELSHIP_GET_DETAIL Read General Relationship
BAPI_BUPR_RESP_EMPLO_CHEKEXIST Read Relationship of Employee Responsible
BUPA_PARTNER_CONTACT_SEARCH Searches business partners for telephone, E-Mail, address
CRM_ORDER_READ Get all the Service Contract details.
Hope this helps!
Regards,
Saumya -
Hi gurus,
I am not familiar with MAINTENANCE VIEW TABLE, can someone please tell me on how to create it and how can I use it for query or select.
I hope someone can help me.
Thanks in advance.hello gurus,
im new to this community please help me out from this please explain what are different conditions are there for install and replace in this code pzzzzzzzzz its really urgent evening is my delivery
THIS IS MIS SHOWS A LEAD TIME FOR DEVICES PERTAINING TO A SELECTION*
CRITERIA FROM THE TIME OF ISSUE OF METER FROM THE DEPOT FOR NEW *
INSTALLATION / REPLACEMENT CONNECTION TO THE FIRST BILL *
Designer : K SRIKANTH *
Programmer : K SRIKANTH *
Programming Date : 29/12/2004
Change Tracking No : D90K *
Program Title : LEAD TIME REPORT FROM DEVICE * *
INSTALLATION/REPLACEMENT TO FIRST BILL *
MODIFICATIONS *
DATE | BY | DESCRIPTION | Chg Trck No *
dd.mm.yy | xxxxx | | *
| | | *
| | | *
ASSUMPTIONS:
THE VALUES FROM THE TABLE V_EABL ARE SELECTED ONLY FOR METER *
READING REASON '01','02','03' & '22' FOR THE FIELD ABLESGR.
THE VALUES FROM THE TABLE ETDZ ARE SELECTED ONLY FOR REGISTER
CODE '01' FOR THE FIELD ZWKENN .
THE NUMBER OF RECORDS FETCHED FROM TABLE EGERH, WHILE RUNNING IN *
FOREGROUND, DEPENDS UPON THE SELECTION CRITERIA. WHILE RUNNING IN *
BACKGROUND THIS CONDITION IS NOT APPLICABLE. *
REPORT ZRDMD01A MESSAGE-ID ZS LINE-SIZE 150 .
TYPE-POOLS : SLIS .
TABLE DECLARATION*********************
TABLES :
IFLOT ,
TE401 , " Transactions reasons
EGERH , " Historical Data of ISU Device Master Record
EQUI , " Equipment master data
EASTL, " Billing data: Installation Structure at Device Level
EANL , " Installation
EVBS , " Premise
EADRREGAREAA, " Role-Spec. Allocation: Reg. Str. Area to Reg. StrGroup
EHAUISU , " Connect. Obj.
ILOA , " PM Object Location and Account Assignment
EABLG , " MR Reasons in MR Document
EABL , " MR Document
EVER , " IS-U Cont.
ERCH , " Billing Doc. Data
ERCHC , " Invoicing/Reversal History: ERCH
ETYP ,
ETDZ,
EASTS ,
V_EABL ,
EADRREGAREAT .
***INTERNAL TABLE DECLARATION*****
DATA : BEGIN OF ITCOM OCCURS 100,
STATUS(50) TYPE C ,
REGIOAREA LIKE EADRREGAREAA-REGIOAREA,
DESCRIPT LIKE EADRREGAREAT-DESCRIPT ,
V0_15 TYPE I,
V16_30 TYPE I,
V31_45 TYPE I,
V46_60 TYPE I,
V61_75 TYPE I,
V76_90 TYPE I,
V90 TYPE I,
VNTAV TYPE I,
TOTAL TYPE I ,
REGIOGROUP LIKE EADRREGAREAA-REGIOGROUP ,
END OF ITCOM .
DATA : ITFLD TYPE SLIS_T_FIELDCAT_ALV ,
SFLD TYPE SLIS_FIELDCAT_ALV ,
ITH TYPE SLIS_T_FIELDCAT_ALV ,
STH TYPE SLIS_FIELDCAT_ALV ,
SIT TYPE SLIS_FIELDCAT_ALV,
ITA TYPE SLIS_T_FIELDCAT_ALV ,
IEVENTS TYPE SLIS_T_EVENT ,
ALV_T_EVENT TYPE SLIS_T_EVENT WITH HEADER LINE,
ITEVENTS TYPE SLIS_ALV_EVENT ,
EVENTS TYPE SLIS_T_EVENT ,
EVNTS TYPE SLIS_ALV_EVENT ,
EVNTS1 TYPE SLIS_ALV_EVENT ,
EVNTS2 TYPE SLIS_ALV_EVENT ,
EVNTS3 TYPE SLIS_ALV_EVENT ,
EVENTS_SUMM TYPE SLIS_T_EVENT ,
EVENTS_DETAIL TYPE SLIS_T_EVENT ,
EVENTS_SPL TYPE SLIS_T_EVENT .
DATA : ITHD TYPE SLIS_T_LISTHEADER ,
HD TYPE SLIS_LISTHEADER ,
ITD TYPE SLIS_T_LISTHEADER ,
TD TYPE SLIS_LISTHEADER .
DATA : BEGIN OF ITFIN OCCURS 0,
EQUNR LIKE EGERH-EQUNR , " EQUIPMENT NUMBER
ANLAGE LIKE EASTL-ANLAGE , "INSTLLATION NUMBER
VSTELLE LIKE EANL-VSTELLE, "PREMISE
LOGIKNR LIKE EGERH-LOGIKNR, "LOGICAL DEVICE NUMBER
SERNR LIKE EQUI-SERNR, "DEVICE NUMBER
VKONTO LIKE EVER-VKONTO, "CONTRACT NUMBER
REGIOAREA LIKE EADRREGAREAA-REGIOAREA,
REGIOGROUP LIKE EADRREGAREAA-REGIOGROUP,
LTPU(8) TYPE C , "LEAD FROM PREMISE T UI
LTUB(8) TYPE C, "LEAD FROM UTILITY INS TO BILLING INS
LTBM(8) TYPE C, "LEAD FROM BI TO MR ORDER
LTMA(8) TYPE C, "LEAD MR ORDER TO ACTUAL MR
LTAB(8) TYPE C, "LEAD FROM ACTUAL MR TO SCHEDULE BILL ORDER
LTBA(8) TYPE C, "LEAD TIME FROM SCHED BILL ORDER TO ACTUAL BILL
SUM(8) TYPE C , "TOTAL LEAD FROM UI TO ACTUAL BILL
SERIAL TYPE I ,
BIS LIKE EGERH-BIS ,
AB LIKE EGERH-AB,
ZWGRUPPE LIKE EGERH-ZWGRUPPE ,
EINBDAT LIKE EGERH-EINBDAT,
AUSBDAT LIKE EGERH-AUSBDAT,
GERWECHS LIKE EGERH-GERWECHS,
DEVLOC LIKE EGERH-DEVLOC,
SPARTE LIKE EQUI-SPARTE,
ANLART LIKE EANL-ANLART,
HAUS LIKE EVBS-HAUS,
VBSART LIKE EVBS-VBSART,
ABLBELNR LIKE EABLG-ABLBELNR,
ABLESGR LIKE EABLG-ABLESGR ,
ADAT LIKE V_EABL-ADAT ,
VERTRAG LIKE EVER-VERTRAG,
DESCRIPT(20) TYPE C, " LIKE EADRREGAREAT-DESCRIPT ,
STATUS(40) TYPE C ,
END OF ITFIN .
DATA : ITAAA LIKE ITFIN OCCURS 100 WITH HEADER LINE ,
ITBBB LIKE ITFIN OCCURS 100 WITH HEADER LINE .
DATA : BEGIN OF ITTE4 OCCURS 100,
GERWECHS LIKE TE401-GERWECHS,
EAWKENNZE LIKE TE401-EAWKENNZE,
EAWKENNZA LIKE TE401-EAWKENNZA,
EAWKENNZW LIKE TE401-EAWKENNZW,
GERWETXT LIKE TE401T-GERWETXT ,
END OF ITTE4 .
DATA : BEGIN OF ITEAS OCCURS 100,
ANLAGE LIKE EASTL-ANLAGE,
LOGIKNR LIKE EASTL-LOGIKNR,
BIS LIKE EASTL-BIS,
AB LIKE EASTL-AB,
ERDAT LIKE EASTL-ERDAT,
END OF ITEAS .
DATA : BEGIN OF ITDES OCCURS 0 ,
LANGU LIKE EADRREGAREAT-LANGU,
ROLE LIKE EADRREGAREAT-ROLE ,
REGIOAREA LIKE EADRREGAREAA-REGIOAREA ,
DESCRIPT(20) type c ," LIKE EADRREGAREAT-DESCRIPT ,
END OF ITDES .
DATA : BEGIN OF ITMX1 OCCURS 0 ,
EQUNR LIKE EGERH-EQUNR,
BIS LIKE EGERH-BIS ,
AB LIKE EGERH-AB,
LOGIKNR LIKE EGERH-LOGIKNR,
ZWGRUPPE LIKE EGERH-ZWGRUPPE ,
EINBDAT LIKE EGERH-EINBDAT,
AUSBDAT LIKE EGERH-AUSBDAT,
GERWECHS LIKE EGERH-GERWECHS,
DEVLOC LIKE EGERH-DEVLOC,
MATNR LIKE EQUI-MATNR,
SERNR LIKE EQUI-SERNR,
SPARTE LIKE EQUI-SPARTE,
ANLAGE LIKE EASTL-ANLAGE,
ERDAT_EAS LIKE EASTL-ERDAT, "ERDAT_EAS
VSTELLE LIKE EANL-VSTELLE,
ANLART LIKE EANL-ANLART,
ERDAT_EAN LIKE EANL-ERDAT, "ERDAT_EAN
HAUS LIKE EVBS-HAUS,
VBSART LIKE EVBS-VBSART,
ERDAT_EVB LIKE EVBS-ERDAT, "ERDAT_EVB
REGIOGROUP LIKE EADRREGAREAA-REGIOGROUP,
REGIOAREA LIKE EADRREGAREAA-REGIOAREA ,
DESCRIPT(20) type c ,
ABLBELNR LIKE V_EABL-ABLBELNR ,
ABLESGR LIKE V_EABL-ABLESGR ,
ADAT LIKE V_EABL-ADAT ,
ADATSOLL LIKE V_EABL-ADATSOLL ,
VERTRAG LIKE EVER-VERTRAG,
VKONTO LIKE EVER-VKONTO,
BELNR LIKE ERCH-BELNR,
VKONT LIKE ERCH-VKONT,
BEGABRPE LIKE ERCH-BEGABRPE,
ENDABRPE LIKE ERCH-ENDABRPE,
ABRDATS LIKE ERCH-ABRDATS,
BUDAT LIKE ERCHC-BUDAT,
LFDNR LIKE ERCHC-LFDNR,
END OF ITMX1 .
DATA : BEGIN OF ITMX2 OCCURS 0,
EQUNR LIKE EGERH-EQUNR,
BIS LIKE EGERH-BIS ,
AB LIKE EGERH-AB,
LOGIKNR LIKE EGERH-LOGIKNR,
ZWGRUPPE LIKE EGERH-ZWGRUPPE ,
EINBDAT LIKE EGERH-EINBDAT,
AUSBDAT LIKE EGERH-AUSBDAT,
GERWECHS LIKE EGERH-GERWECHS,
DEVLOC LIKE EGERH-DEVLOC,
MATNR LIKE EQUI-MATNR,
SERNR LIKE EQUI-SERNR,
SPARTE LIKE EQUI-SPARTE,
ANLAGE LIKE EASTL-ANLAGE,
LOGIKNR LIKE EGERH-LOGIKNR,
ERDAT LIKE EASTL-ERDAT, "ERDAT_EAS
END OF ITMX2 .
DATA : BEGIN OF ITMX4 OCCURS 0 ,
ANLAGE LIKE EANL-ANLAGE ,
VSTELLE LIKE EANL-VSTELLE,
HAUS LIKE EVBS-HAUS,
VBSART LIKE EVBS-VBSART,
ERDAT LIKE EVBS-ERDAT, "ERDAT_EVB
REGIOGROUP LIKE EADRREGAREAA-REGIOGROUP,
REGIOAREA LIKE EADRREGAREAA-REGIOAREA ,
DESCRIPT(20) type c ,
ANLART LIKE EANL-ANLART,
END OF ITMX4 .
DATA : BEGIN OF ITEVE OCCURS 0 ,
ANLAGE LIKE EVER-ANLAGE ,
VKONTO LIKE EVER-VKONTO,
VERTRAG LIKE EVER-VERTRAG,
SPARTE LIKE EVER-SPARTE ,
END OF ITEVE .
DATA : BEGIN OF ITMX3 OCCURS 0 ,
EQUNR LIKE V_EABL-EQUNR ,
ABLBELNR LIKE V_EABL-ABLBELNR ,
ABLESGR LIKE V_EABL-ABLESGR ,
ADAT LIKE V_EABL-ADAT ,
ADATSOLL LIKE V_EABL-ADATSOLL ,
ANLAGE LIKE EVER-ANLAGE ,
VKONTO LIKE EVER-VKONTO,
VERTRAG LIKE EVER-VERTRAG,
SPARTE LIKE EVER-SPARTE ,
VKONT LIKE ERCH-VKONT,
BEGABRPE LIKE ERCH-BEGABRPE,
ENDABRPE LIKE ERCH-ENDABRPE,
ABRDATS LIKE ERCH-ABRDATS,
BELNR LIKE ERCH-BELNR,
LFDNR LIKE ERCHC-LFDNR,
BUDAT LIKE ERCHC-BUDAT,
SWERK LIKE ILOA-SWERK ,
END OF ITMX3.
data : BEGIN OF ITERC OCCURS 0 ,
BEGABRPE LIKE ERCH-BEGABRPE,
ENDABRPE LIKE ERCH-ENDABRPE,
ABRDATS LIKE ERCH-ABRDATS,
VERTRAG like ERCH-VERTRAG ,
BELNR LIKE ERCH-BELNR,
VKONT LIKE ERCH-VKONT ,
LFDNR LIKE ERCHC-LFDNR,
BUDAT LIKE ERCHC-BUDAT,
END OF ITERC .
DATA : BEGIN OF ITMX7 OCCURS 0,
SRNO TYPE I ,
STATUS(40) TYPE C ,
REGIOAREA LIKE EADRREGAREAA-REGIOAREA ,
REGIOGROUP LIKE EADRREGAREAA-REGIOGROUP ,
DESCRIPT(20) TYPE C ," LIKE EADRREGAREAT-DESCRIPT ,
V0_15 LIKE ITCOM-V0_15 ,
V16_30 LIKE ITCOM-V16_30 ,
V31_45 LIKE ITCOM-V31_45 ,
V46_60 LIKE ITCOM-V46_60 ,
V61_75 LIKE ITCOM-V61_75 ,
V76_90 LIKE ITCOM-V76_90 ,
V90 LIKE ITCOM-V90 ,
VNTAV LIKE ITCOM-VNTAV ,
TOTAL TYPE I ,
END OF ITMX7 .
DATA : BEGIN OF ITETD OCCURS 0,
EQUNR LIKE ETDZ-EQUNR ,
ZWNUMMER LIKE ETDZ-ZWNUMMER,
ZWKENN LIKE ETDZ-ZWKENN ,
LOGIKZW LIKE ETDZ-LOGIKZW ,
ANLAGE LIKE EASTS-ANLAGE ,
BIS LIKE EASTS-BIS,
ZWNABR LIKE EASTS-ZWNABR ,
END OF ITETD .
DATA : BEGIN OF ITEAN OCCURS 100,
ANLAGE LIKE EASTL-ANLAGE,
SPARTE LIKE EQUI-SPARTE,
VSTELLE LIKE EANL-VSTELLE,
ANLART LIKE EANL-ANLART,
ERDAT LIKE EANL-ERDAT ,
HAUS LIKE EVBS-HAUS,
VBSART LIKE EVBS-VBSART,
ERDAT_EVBS LIKE EVBS-ERDAT, "ERDAT_EVB
REGIOGROUP LIKE EADRREGAREAA-REGIOGROUP,
REGIOAREA LIKE EADRREGAREAA-REGIOAREA ,
DESCRIPT(20) type c ,
END OF ITEAN .
DATA : BEGIN OF ITSPL OCCURS 0 ,
TPLNR LIKE IFLOT-TPLNR ,
TPLMA LIKE IFLOT-TPLMA ,
HAUS LIKE EHAUISU-HAUS ,
REGIOGROUP LIKE EADRREGAREAA-REGIOGROUP ,
END OF ITSPL .
DATA : BEGIN OF ITEGE OCCURS 0,
EQUNR LIKE EGERH-EQUNR ,
LOGIKNR LIKE EGERH-LOGIKNR,
MATNR LIKE EQUI-MATNR ,
SERNR LIKE EQUI-SERNR,
SPARTE LIKE EQUI-SPARTE,
DEVLOC LIKE EGERH-DEVLOC,
END OF ITEGE .
DATA : ITMOD LIKE ITMX2 OCCURS 0 WITH HEADER LINE ,
WA_ITMX2 LIKE ITMX2 .
DATA : WA-EQUNR LIKE EQUI-EQUNR ,
WA-ANLAGE LIKE EASTL-ANLAGE .
DATA : w_variant like disvariant ,
W_VARIANT_SAVE TYPE C .
DATA : REP-ID LIKE SY-REPID,
W_REPID LIKE SY-REPID .
DATA PUSH TYPE SSCRFIELDS-UCOMM .
DATA COUNT TYPE I .
DATA : V13 TYPE I ,
V17 TYPE I.
DATA CNT TYPE I .
DATA VARIANT LIKE SY-TABIX .
DATA : SNT TYPE I ,
PNT TYPE I ,
V_COUNT TYPE I VALUE 1 .
DATA: ylayout TYPE slis_layout_alv ,
XLAYOUT TYPE SLIS_LAYOUT_ALV .
DATA KNT TYPE I VALUE 0 .
DATA I_SORT TYPE slis_t_sortinfo_alv WITH HEADER LINE .
DATA : V_DATE LIKE SY-DATUM ,
V_DATUM(10) TYPE C ,
GX_VARIANT LIKE DISVARIANT,
G_VARIANT LIKE DISVARIANT,
G_SAVE(1) TYPE C VALUE 'A',
G_EXIT(1) TYPE C,
N TYPE I ,
M TYPE I ,
C TYPE I VALUE 0 .
DATA G_REPID LIKE SY-REPID .
DATA: GT_PRINT TYPE SLIS_PRINT_ALV.
DATA YREPID LIKE SY-REPID .
DATA: X_LAYOUT TYPE SLIS_LAYOUT_ALV ,
Y_LAYOUT TYPE SLIS_LAYOUT_ALV ,
Z_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA : TITLE LIKE SY-TITLE .
DATA : V_ENTER TYPE I ,
V_MODIFY TYPE I .
******************SELECTION SCREEN ************************
SELECTION-SCREEN BEGIN OF BLOCK BL1 WITH FRAME TITLE TEXT-001 .
PARAMETERS P_SPART LIKE EQUI-SPARTE DEFAULT '01' .
SELECTION-SCREEN COMMENT 40(15) TEXT-005 .
SELECT-OPTIONS : S_SWERK FOR ILOA-SWERK DEFAULT 'M011',
S_RAREA FOR EADRREGAREAA-REGIOAREA ,
S_RGROUP FOR EADRREGAREAA-REGIOGROUP,
S_AB FOR EGERH-AB OBLIGATORY .
SELECTION-SCREEN END OF BLOCK BL1 .
SELECTION-SCREEN BEGIN OF BLOCK BL2 WITH FRAME TITLE TEXT-002 .
SELECT-OPTIONS: S_SERNR FOR EQUI-SERNR ,
S_MATNR FOR EQUI-MATNR OBLIGATORY ,
S_VSTELL FOR EANL-VSTELLE ,
S_HAUS FOR EHAUISU-HAUS .
SELECTION-SCREEN END OF BLOCK BL2.
SELECTION-SCREEN BEGIN OF BLOCK BL3 WITH FRAME TITLE TEXT-003 .
SELECT-OPTIONS: S_VKONTO FOR EVER-VKONTO .
SELECTION-SCREEN END OF BLOCK BL3 .
SELECTION-SCREEN BEGIN OF BLOCK BL4 WITH FRAME TITLE TEXT-004 .
PARAMETERS: P_INSTA RADIOBUTTON GROUP RAD1 DEFAULT 'X' ,
P_REPLC RADIOBUTTON GROUP RAD1 ,
P_IP RADIOBUTTON GROUP RAD1 .
SELECT-OPTIONS : S_GERWE FOR EGERH-GERWECHS .
SELECTION-SCREEN END OF BLOCK BL4 .
SELECTION-SCREEN BEGIN OF BLOCK BL5 WITH FRAME TITLE TEXT-006.
PARAMETERS : P_VARI LIKE DISVARIANT-VARIANT ."DEFAULT '/ALL'.
SELECTION-SCREEN COMMENT 47(40) varname FOR FIELD P_VARI .
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN PUSHBUTTON /5(25) BUT1 USER-COMMAND UCSS .
PARAMETERS: P_FIXVAR LIKE KAEP_SETT-FIXVAR NO-DISPLAY,
P_MAXSEL LIKE KAEP_SETT-MAXSEL NO-DISPLAY DEFAULT 1000.
SELECTION-SCREEN END OF BLOCK BL5.
*******INITIALIZATION************************
INITIALIZATION .
SET PF-STATUS 'INST' .
G_REPID = SY-REPID.
PERFORM VARIANT_INIT.
Default variant
GX_VARIANT = G_VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
I_SAVE = G_SAVE
CHANGING
CS_VARIANT = GX_VARIANT
EXCEPTIONS
NOT_FOUND = 2.
IF SY-SUBRC = 0.
P_VARI = GX_VARIANT-VARIANT.
ENDIF.
MOVE 'Further Settings' TO BUT1 .
AT SELECTION SCREEN EVENT******
AT SELECTION-SCREEN .
CASE SY-UCOMM .
WHEN 'UCSS' .
CALL FUNCTION 'K_LINE_ITEM_TECH_SETTINGS_SET'
CHANGING
C_FIXVAR = P_FIXVAR
C_MAXSEL = P_MAXSEL.
ENDCASE .
IF NOT S_RAREA IS INITIAL .
SELECT SINGLE * FROM EADRREGAREAA
WHERE REGIOAREA IN S_RAREA .
IF SY-SUBRC <> 0 .
MESSAGE E058(00) WITH S_RAREA-LOW S_RAREA-HIGH.
LEAVE TO LIST-PROCESSING .
ENDIF .
ENDIF.
IF NOT S_MATNR IS INITIAL .
SELECT SINGLE * FROM ETYP
WHERE MATNR IN S_MATNR
AND KOMBINAT = 'Z'.
IF SY-SUBRC <> 0 .
MESSAGE E411(EG) .
LEAVE TO LIST-PROCESSING .
ENDIF.
ENDIF.
IF NOT S_SWERK IS INITIAL .
SELECT SINGLE * FROM ILOA
WHERE SWERK IN S_SWERK .
IF SY-SUBRC <> 0 .
MESSAGE E412(I0) .
LEAVE TO LIST-PROCESSING .
ENDIF.
ENDIF.
IF NOT S_RGROUP IS INITIAL .
SELECT SINGLE * FROM EADRREGAREAA
WHERE REGIOGROUP IN S_RGROUP .
IF SY-SUBRC <> 0 .
MESSAGE E025(E7) .
LEAVE TO LIST-PROCESSING .
ENDIF.
ENDIF.
IF NOT S_HAUS IS INITIAL .
SELECT SINGLE * FROM EHAUISU
WHERE HAUS IN S_HAUS .
IF SY-SUBRC <> 0 .
MESSAGE E011(E9) WITH 'Connection Object' S_HAUS-LOW S_HAUS-HIGH .
LEAVE TO LIST-PROCESSING .
ENDIF.
ENDIF.
IF NOT S_VSTELL IS INITIAL .
SELECT SINGLE * FROM EANL
WHERE VSTELLE IN S_VSTELL .
IF SY-SUBRC <> 0 .
MESSAGE E011(E9) WITH 'Premise' S_VSTELL-LOW S_VSTELL-HIGH .
LEAVE TO LIST-PROCESSING .
ENDIF.
ENDIF.
IF NOT S_VKONTO IS INITIAL .
SELECT SINGLE * FROM EVER
WHERE VKONTO IN S_VKONTO .
IF SY-SUBRC <> 0 .
MESSAGE E001(>3) .
LEAVE TO LIST-PROCESSING .
ENDIF.
ENDIF.
IF NOT S_GERWE IS INITIAL .
SELECT SINGLE * FROM TE401
WHERE GERWECHS IN S_GERWE .
IF SY-SUBRC <> 0 .
MESSAGE E058(00) WITH S_GERWE-LOW S_GERWE-HIGH .
LEAVE TO LIST-PROCESSING .
ENDIF.
ENDIF.
IF NOT P_SPART IS INITIAL .
SELECT SINGLE * FROM EQUI
WHERE SPARTE = P_SPART .
IF SY-SUBRC <> 0 .
MESSAGE E058(00).
LEAVE TO LIST-PROCESSING .
ENDIF.
ENDIF.
CASE SY-UCOMM .
WHEN '&LFO'.
WRITE:/ ' DOCUMENTATION' .
ENDCASE .
PERFORM VARIANT_EXISTENCE .
AT SELECTION-SCREEN OUTPUT .
LOOP AT SCREEN .
IF SCREEN-NAME = 'P_SPART' .
SCREEN-INPUT = 0 .
MODIFY SCREEN .
ENDIF .
ENDLOOP .
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI .
PERFORM F4_FOR_VARIANT.
***************START OF SELECTION EVENT****************
START-OF-SELECTION .
IF P_INSTA = 'X' .
PERFORM INSTALL .
ELSEIF P_REPLC = 'X' .
PERFORM REPLACE .
ELSEIF P_IP = 'X' .
PERFORM INS_REPL .
ENDIF.
IF SY-BATCH = ' ' .
SELECT A~EQUNR
A~BIS
A~AB
A~LOGIKNR
A~ZWGRUPPE
A~EINBDAT
A~AUSBDAT
A~GERWECHS
A~DEVLOC
B~MATNR
B~SERNR
B~SPARTE
D~ANLAGE
D~LOGIKNR
D~ERDAT FROM ( ( EGERH AS A INNER JOIN EQUI AS B
ON AEQUNR = BEQUNR )
INNER JOIN EASTL AS D ON ALOGIKNR = DLOGIKNR )
AND ABIS = DBIS
AND AAB = DAB )
INTO TABLE ITMX2 UP TO P_MAXSEL ROWS
FOR ALL ENTRIES IN ITTE4
WHERE A~GERWECHS = ITTE4-GERWECHS
AND A~BIS GE S_AB-LOW
AND A~AB IN S_AB
AND A~KOMBINAT = 'Z'
AND A~EINBDAT NE '00000000'
AND A~AUSBDAT EQ '00000000'
AND B~MATNR IN S_MATNR
AND B~SERNR IN S_SERNR
AND B~SPARTE = P_SPART
AND D~BIS GE S_AB-LOW .
AND D~AB IN S_AB .
ELSE.
SELECT A~EQUNR
A~BIS
A~AB
A~LOGIKNR
A~ZWGRUPPE
A~EINBDAT
A~AUSBDAT
A~GERWECHS
A~DEVLOC
B~MATNR
B~SERNR
B~SPARTE
D~ANLAGE
D~LOGIKNR
D~ERDAT
FROM ( ( EGERH AS A INNER JOIN EQUI AS B
ON AEQUNR = BEQUNR )
INNER JOIN EASTL AS D ON ALOGIKNR = DLOGIKNR )
AND ABIS = DBIS
AND AAB = DAB )
INTO TABLE ITMX2
FOR ALL ENTRIES IN ITTE4
WHERE A~GERWECHS = ITTE4-GERWECHS
AND A~BIS GE S_AB-LOW
AND A~AB IN S_AB
AND A~KOMBINAT = 'Z'
AND A~EINBDAT NE '00000000'
AND A~AUSBDAT EQ '00000000'
AND B~MATNR IN S_MATNR
AND B~SERNR IN S_SERNR
AND B~SPARTE = P_SPART
AND D~BIS GE S_AB-LOW .
AND D~AB IN S_AB .
ENDIF.
SORT ITMX2 BY ANLAGE EQUNR .
LOOP AT ITMX2 .
IF ITMX2-ANLAGE = WA_ITMX2-ANLAGE .
MOVE-CORRESPONDING WA_ITMX2 TO ITMOD .
APPEND ITMOD.
CLEAR ITMOD .
MOVE-CORRESPONDING ITMX2 TO ITMOD .
APPEND ITMOD.
CLEAR ITMOD .
ENDIF.
MOVE-CORRESPONDING ITMX2 TO WA_ITMX2 .
ENDLOOP .
SORT ITMOD BY ANLAGE EQUNR .
DELETE ADJACENT DUPLICATES FROM ITMOD .
IF NOT ITMOD[] IS INITIAL .
SELECT A~EQUNR
A~ZWNUMMER
A~ZWKENN
A~LOGIKZW
B~ANLAGE
B~ZWNABR
FROM ( ETDZ AS A INNER JOIN EASTS AS B
ON ALOGIKZW = BLOGIKZW )
INTO TABLE ITETD
FOR ALL ENTRIES IN ITMOD
WHERE A~EQUNR = ITMOD-EQUNR
AND A~BIS GE S_AB-LOW
AND A~AB IN S_AB
AND A~ZWNUMMER = 1
AND B~ZWNABR NE 'X' .
SORT ITETD BY ANLAGE EQUNR .
LOOP AT ITMX2 .
LOOP AT ITETD WHERE ANLAGE EQ ITMX2-ANLAGE .
V_ENTER = 1 .
IF ITETD-EQUNR EQ ITMX2-EQUNR .
V_MODIFY = 1 .
EXIT .
ENDIF.
ENDLOOP .
IF V_ENTER = 1 AND V_MODIFY = 0 .
DELETE ITMX2 .
ENDIF.
CLEAR : ITMX2 ,V_ENTER ,V_MODIFY .
ENDLOOP .
ENDIF.
MESSAGE S015(ZS).
IF NOT ITMX2[] IS INITIAL .
SELECT ANLAGE
VSTELLE
ANLART
ERDAT
FROM EANL INTO CORRESPONDING FIELDS OF TABLE ITEAN
FOR ALL ENTRIES IN ITMX2
WHERE ANLAGE = ITMX2-ANLAGE
AND SPARTE = P_SPART
AND VSTELLE IN S_VSTELL .
ENDIF.
SORT ITEAN BY ANLAGE .
IF NOT ITEAN[] IS INITIAL .
SELECT E~ANLAGE
E~VSTELLE
F~haus
F~VBSART
F~ERDAT
H~REGIOGROUP
H~REGIOAREA
L~DESCRIPT
FROM ( ( ( ( EANL AS E INNER JOIN EVBS AS F
ON EVSTELLE = FVSTELLE )
INNER JOIN EHAUISU AS G ON FHAUS = GHAUS )
INNER JOIN EADRREGAREAA AS H ON G~REGIOGROUP =
H~REGIOGROUP )
INNER JOIN EADRREGAREAT AS L ON H~REGIOAREA =
L~REGIOAREA )
INTO TABLE ITMX4
FOR ALL ENTRIES IN ITEAN
WHERE E~ANLAGE = ITEAN-ANLAGE
AND E~VSTELLE = ITEAN-VSTELLE
AND L~LANGU = SY-LANGU
AND H~REGIOGROUP IN S_RGROUP
AND H~REGIOAREA IN S_RAREA .
ENDIF.
*LOOP AT ITEAN .
READ TABLE ITMX4 WITH KEY VSTELLE = ITEAN-VSTELLE .
IF SY-SUBRC EQ 0 .
MOVE-CORRESPONDING ITMX4 TO ITEAN .
ITEAN-ERDAT_EVBS = ITMX4-ERDAT .
MODIFY ITEAN .
ENDIF.
*ENDLOOP .
LOOP AT ITMX2 .
ITMX1-ERDAT_EAS = ITMX2-ERDAT .
MOVE-CORRESPONDING ITMX2 TO ITMX1 .
READ TABLE ITEAN WITH KEY ANLAGE = ITMX2-ANLAGE .
IF SY-SUBRC EQ 0 .
ITMX1-ERDAT_EAN = ITEAN-ERDAT .
MOVE-CORRESPONDING ITEAN TO ITMX1 .
READ TABLE ITMX4 WITH KEY ANLAGE = ITMX2-ANLAGE .
IF SY-SUBRC EQ 0 .
ITMX1-ERDAT_EVB = ITMX4-ERDAT .
MOVE-CORRESPONDING ITMX4 TO ITMX1 .
ENDIF.
WE WILL GET ONLY THOSE RECORDS THAT IS HAVING REGIO GROUP,DIVISON
APPEND ITMX1.
CLEAR ITMX1 .
ENDIF.
ENDLOOP .
IF NOT ITMX4[] IS INITIAL .
SELECT EQUNR
ABLBELNR
ABLESGR
ADAT
ADATSOLL
ANLAGE FROM V_EABL
INTO TABLE ITMX3
FOR ALL ENTRIES IN ITMX1
WHERE ANLAGE = ITMX1-ANLAGE
AND EQUNR = ITMX1-EQUNR
AND ADATSOLL GE S_AB-LOW
ANd ( ABLESGR EQ '01'
OR ABLESGR EQ '02'
OR ABLESGR EQ '03'
OR ABLESGR EQ '22' ) .
SELECT B~EQUNR
A~ABLBELNR
A~ABLESGR
B~ADAT
B~ADATSOLL
A~ANLAGE
FROM ( EABLG AS A INNER JOIN EABL AS B ON AABLBELNR = BABLBELNR
INTO CORRESPONDING FIELDS OF TABLE ITMX3
FOR ALL ENTRIES IN ITMX1
WHERE A~ANLAGE = ITMX1-ANLAGE
AND B~EQUNR = ITMX1-EQUNR
AND B~ADATSOLL GE S_AB-LOW
AND A~ABRDATS GE S_AB-LOW
AND ( A~ABLESGR EQ '01'
OR A~ABLESGR EQ '02'
OR A~ABLESGR EQ '03'
OR A~ABLESGR EQ '22' ) .
ENDIF.
SELECT ANLAGE
VKONTO
VERTRAG
SPARTE
FROM EVER INTO TABLE ITEVE
FOR ALL ENTRIES IN ITMX1
WHERE ANLAGE = ITMX1-ANLAGE
AND SPARTE = P_SPART .
LOOP AT ITMX1 .
READ TABLE ITMX3 WITH KEY ANLAGE = ITMX1-ANLAGE
EQUNR = ITMX1-EQUNR .
IF SY-SUBRC EQ 0 .
MOVE-CORRESPONDING ITMX3 TO ITMX1 .
ENDIF.
READ TABLE ITEVE WITH KEY ANLAGE = ITMX1-ANLAGE .
IF SY-SUBRC EQ 0 .
MOVE-CORRESPONDING ITEVE TO ITMX1 .
ENDIF.
MODIFY ITMX1 .
ENDLOOP .
SELECT J~BEGABRPE
J~ENDABRPE
J~ABRDATS
J~VKONT
j~vertrag
K~BELNR
K~LFDNR
K~BUDAT
FROM ( ERCH AS J INNER JOIN ERCHC AS K ON JBELNR = KBELNR )
INTO CORRESPONDING FIELDS OF TABLE ITERC
FOR ALL ENTRIES IN ITMX1
WHERE J~VERTRAG = ITMX1-VERTRAG
AND J~ADATSOLL GE S_AB-LOW .
*SELECT BEGABRPE
ENDABRPE
ABRDATS
VKONT
vertrag
K~BELNR
K~LFDNR
K~BUDAT
FROM ERCH INTO CORRESPONDING FIELDS OF TABLE ITERC
FOR ALL ENTRIES in ITMX1
WHERE VERTRAG = ITMX1-VERTRAG
and ADATSOLL GE S_AB-LOW .
LOOP AT ITMX1 .
READ TABLE ITERC WITH KEY VERTRAG = ITMX1-VERTRAG .
IF SY-SUBRC EQ 0 .
ITMX1-BEGABRPE = ITERC-BEGABRPE .
ITMX1-ENDABRPE = ITERC-ENDABRPE .
ITMX1-ABRDATS = ITERC-ABRDATS .
ITMX1-BELNR = ITERC-BELNR .
ITMX1-LFDNR = ITERC-LFDNR .
ITMX1-BUDAT = ITERC-BUDAT .
MODIFY ITMX1 TRANSPORTING BEGABRPE ENDABRPE ABRDATS BELNR
LFDNR BUDAT .
ENDIF.
ENDLOOP .
MESSAGE S014(ZS) .
LOOP AT ITMX1 .
MOVE-CORRESPONDING ITMX1 TO ITFIN .
ITFIN-LTPU = ITMX1-ERDAT_EAN - ITMX1-ERDAT_EVB .
ITFIN-LTUB = ITMX1-ERDAT_EAS - ITMX1-ERDAT_EAN .
IF NOT ITMX1-ADATSOLL IS INITIAL AND ( NOT ITMX1-EINBDAT IS INITIAL )
ITFIN-LTBM = ITMX1-ADATSOLL - ITMX1-EINBDAT .
ELSE .
ITFIN-LTBM = 'NTAV'.
ENDIF.
IF NOT ITMX1-ADAT IS INITIAL AND ( NOT ITMX1-ADATSOLL IS INITIAL ) .
ITFIN-LTMA = ITMX1-ADAT - ITMX1-ADATSOLL .
ELSE .
ITFIN-LTMA = 'NTAV' .
ENDIF.
IF NOT ITMX1-ABRDATS IS INITIAL AND ( NOT ITMX1-ADAT IS INITIAL ) .
ITFIN-LTAB = ITMX1-ABRDATS - ITMX1-ADAT .
ELSE .
ITFIN-LTAB = 'NTAV' .
ENDIF.
IF NOT ITMX1-BUDAT IS INITIAL AND ( NOT ITMX1-ABRDATS IS INITIAL ) .
ITFIN-LTBA = ITMX1-BUDAT - ITMX1-ABRDATS .
ELSE.
ITFIN-LTBA = 'NTAV'.
ENDIF.
ITFIN-SUM = 0.
IF ITFIN-LTPU NE 'NTAV' AND ITFIN-LTPU NE 'N/A'.
ITFIN-SUM = ITFIN-SUM + ITFIN-LTPU.
ENDIF.
IF ITFIN-LTUB NE 'NTAV' AND ITFIN-LTUB NE 'N/A'.
ITFIN-SUM = ITFIN-SUM + ITFIN-LTUB.
ENDIF.
IF ITFIN-LTBM NE 'NTAV' AND ITFIN-LTBM NE 'N/A'.
ITFIN-SUM = ITFIN-SUM + ITFIN-LTBM.
ENDIF.
IF ITFIN-LTMA NE 'NTAV' AND ITFIN-LTMA NE 'N/A'.
ITFIN-SUM = ITFIN-SUM + ITFIN-LTMA.
ENDIF.
IF ITFIN-LTAB NE 'NTAV' AND ITFIN-LTAB NE 'N/A'.
ITFIN-SUM = ITFIN-SUM + ITFIN-LTAB.
ENDIF.
IF ITFIN-LTBA NE 'NTAV' AND ITFIN-LTBA NE 'N/A'.
ITFIN-SUM = ITFIN-SUM + ITFIN-LTBA.
ENDIF.
APPEND ITFIN .
CLEAR ITFIN .
ENDLOOP .
DELETE ADJACENT DUPLICATES FROM ITFIN .
PERFORM SUMMARY .
Message S013(ZS).
PERFORM BACKGROUND .
CLEAR: ITMX2[] ,ITSPL[],ITEGE[] ,ITTE4[],ITMX7[] .
MESSAGE S017(ZS) .
SUBROUTINES********************************
FOR INSTALLATION********************************
FORM INSTALL .
SELECT GERWECHS
EAWKENNZE
EAWKENNZW
FROM TE401 INTO CORRESPONDING FIELDS OF TABLE ITTE4
WHERE GERWECHS IN S_GERWE
AND EAWKENNZE = 'X' .
IF SY-SUBRC NE 0 .
MESSAGE S002(ZS).
LEAVE TO LIST-PROCESSING .
ENDIF.
ENDFORM .
************************REPLACE****************************
FORM REPLACE .
SELECT GERWECHS
EAWKENNZE
EAWKENNZW FROM TE401 INTO CORRESPONDING FIELDS OF TABLE ITTE4
WHERE GERWECHS IN S_GERWE
AND EAWKENNZW = 'X' .
IF SY-SUBRC NE 0.
MESSAGE S003(ZS) .
LEAVE TO LIST-PROCESSING .
ENDIF.
ENDFORM .
************************INSTALL/REPLACEMENT*********************
FORM INS_REPL .
SELECT GERWECHS
EAWKENNZE
EAWKENNZA
EAWKENNZW FROM TE401 INTO CORRESPONDING FIELDS OF TABLE ITTE4
WHERE GERWECHS IN S_GERWE
AND ( EAWKENNZE = 'X'
OR EAWKENNZW = 'X' ) .
IF SY-SUBRC NE 0.
MESSAGE S004(ZS) .
LEAVE TO LIST-PROCESSING .
ENDIF.
ENDFORM .
FIELD CATALOG FOR DETAILED REPORT ******************
FORM FIELDCATALOG USING F_FIELDCAT .
CLEAR SFLD .
SFLD-FIELDNAME = 'STATUS' .
SFLD-SELTEXT_S = 'Details'.
SFLD-SELTEXT_M = 'Details'.
SFLD-JUST = 'L' .
SFLD-KEY = 'X' .
APPEND SFLD TO ITFLD .
CLEAR SFLD .
SFLD-FIELDNAME = 'EQUNR' .
SFLD-SELTEXT_S = 'Equipment'.
SFLD-SELTEXT_M = 'Equipment'.
SFLD-JUST = 'L' .
SFLD-KEY = 'X' .
APPEND SFLD TO ITFLD .
CLEAR SFLD .
SFLD-FIELDNAME = 'ANLAGE' .
SFLD-SELTEXT_S = 'Installat.'.
SFLD-SELTEXT_M = 'Installation'.
SFLD-JUST = 'L' .
SFLD-KEY = 'X' .
APPEND SFLD TO ITFLD .
CLEAR SFLD .
SFLD-FIELDNAME = 'SERNR' .
SFLD-SELTEXT_S = 'Serial no.'.
SFLD-SELTEXT_M = 'Serial number'.
SFLD-JUST = 'L' .
SFLD-KEY = 'X' .
SFLD-HOTSPOT = 'X' .
APPEND SFLD TO ITFLD .
CLEAR SFLD .
SFLD-FIELDNAME = 'VKONTO' .
SFLD-SELTEXT_S = 'Cont.Acct'.
SFLD-SELTEXT_M = 'Contract Acct'.
SFLD-JUST = 'L' .
SFLD-KEY = 'X' .
SFLD-HOTSPOT = 'X' .
APPEND SFLD TO ITFLD .
CLEAR SFLD .
SFLD-FIELDNAME = 'REGIOAREA' .
SFLD-SELTEXT_S = 'Reg. area'.
SFLD-SELTEXT_M = 'Reg. struc.area'.
SFLD-JUST = 'L' .
SFLD-KEY = 'X' .
APPEND SFLD TO ITFLD .
CLEAR SFLD .
SFLD-FIELDNAME = 'REGIOGROUP' .
SFLD-SELTEXT_S = 'RegStrGrp.'.
SFLD-SELTEXT_M = 'Reg. Str. Grp.'.
SFLD-JUST = 'L' .
SFLD-KEY = 'X' .
APPEND SFLD TO ITFLD .
CLEAR SFLD .
SFLD-FIELDNAME = 'LTPU' .
SFLD-SELTEXT_S = 'Prm-Util'.
SFLD-SELTEXT_L = 'Premise to Utility installation in days'.
SFLD-JUST = 'R' .
SFLD-KEY = 'X' .
APPEND SFLD TO ITFLD .
CLEAR SFLD .
SFLD-FIELDNAME = 'LTUB' .
SFLD-SELTEXT_S = 'Util-BInst'.
SFLD-SELTEXT_L = 'Utility to Billing installation in days'.
SFLD-JUST = 'R' .
SFLD-KEY = 'X' .
APPEND SFLD TO ITFLD .
CLEAR SFLD .
SFLD-FIELDNAME = 'LTBM' .
SFLD-SELTEXT_M = 'BInst-MRO'.
SFLD-SELTEXT_L = 'Billing to Meter reading order in days'.
SFLD-JUST = 'R' .
SFLD-KEY = 'X' .
APPEND SFLD TO ITFLD .
CLEAR SFLD .
SFLD-FIELDNAME = 'LTMA' .
SFLD-SELTEXT_M = 'MRO-AcRead'.
SFLD-SELTEXT_L = 'Meter reading order to actual reading in days'.
SFLD-JUST = 'R' .
SFLD-KEY = 'X' .
APPEND SFLD TO ITFLD .
CLEAR SFLD .
SFLD-FIELDNAME = 'LTAB' .
SFLD-SELTEXT_M = 'AcRead-BiOr'.
SFLD-SELTEXT_L = 'Actual reading to Billing order in days'.
SFLD-JUST = 'R' .
SFLD-KEY = 'X' .
APPEND SFLD TO ITFLD .
CLEAR SFLD .
SFLD-FIELDNAME = 'LTBA' .
SFLD-SELTEXT_M = 'BiOr-AcBill'.
SFLD-SELTEXT_L = 'Billing order to Actual billing in days'.
SFLD-JUST = 'R' .
SFLD-KEY = 'X' .
APPEND SFLD TO ITFLD .
CLEAR SFLD .
SFLD-FIELDNAME = 'SUM' .
SFLD-SELTEXT_M = 'TOTAL'.
SFLD-SELTEXT_L = 'Total lead time in days'.
SFLD-JUST = 'R' .
SFLD-KEY = 'X' .
APPEND SFLD TO ITFLD .
CLEAR SFLD .
SFLD-FIELDNAME = 'VSTELLE' .
SFLD-SELTEXT_S = 'Premise'.
SFLD-SELTEXT_M = 'Premise'.
SFLD-JUST = 'L' .
SFLD-KEY = 'X' .
APPEND SFLD TO ITFLD .
CLEAR SFLD .
SFLD-FIELDNAME = 'LOGIKNR' .
SFLD-SELTEXT_S = 'LogDev.no.'.
SFLD-SELTEXT_M = 'Log. dev. no.'.
SFLD-JUST = 'L' .
SFLD-KEY = 'X' .
APPEND SFLD TO ITFLD .
CLEAR SFLD .
SFLD-FIELDNAME = 'BIS' .
SFLD-SELTEXT_M = 'Valid to'.
SFLD-SELTEXT_L = 'Date at Which a Time Slice Expires'.
SFLD-JUST = 'C' .
SFLD-NO_OUT = 'X' .
APPEND SFLD TO ITFLD .
CLEAR SFLD .
SFLD-FIELDNAME = 'AB' .
SFLD-SELTEXT_M = 'Valid from'.
SFLD-SELTEXT_L = 'Date from which time slice is valid'.
SFLD-JUST = 'C' .
SFLD-NO_OUT = 'X' .
APPEND SFLD TO ITFLD .
CLEAR SFLD .
SFLD-FIELDNAME = 'ZWGRUPPE' .
SFLD-SELTEXT_S = 'Reg. group'.
SFLD-SELTEXT_M = 'Register group'.
SFLD-JUST = 'C' .
SFLD-NO_OUT = 'X' .
APPEND SFLD TO ITFLD .
CLEAR SFLD .
SFLD-FIELDNAME = 'EINBDAT' .
SFLD-SELTEXT_S = 'Inst. date'.
SFLD-SELTEXT_M = 'Install. date'.
SFLD-JUST = 'C' .
SFLD-NO_OUT = 'X' .
APPEND SFLD TO ITFLD .
CLEAR SFLD.
SFLD-FIELDNAME = 'AUSBDAT' .
SFLD-SELTEXT_S = 'Remov.date'.
SFLD-SELTEXT_M = 'Removal date'.
SFLD-JUST = 'C' .
SFLD-NO_OUT = 'X' .
APPEND SFLD TO ITFLD .
CLEAR SFLD .
SFLD-FIELDNAME = 'GERWECHS' .
SFLD-SELTEXT_S = 'Reason'.
SFLD-SELTEXT_M = 'Activity reason'.
SFLD-JUST = 'C' .
SFLD-NO_OUT = 'X' .
APPEND SFLD TO ITFLD .
CLEAR SFLD .
SFLD-FIELDNAME = 'DEVLOC' .
SFLD-SELTEXT_S = 'Dev. loc.'.
SFLD-SELTEXT_M = 'Device location'.
SFLD-JUST = 'C' .
SFLD-NO_OUT = 'X' .
APPEND SFLD TO ITFLD .
CLEAR SFLD .
SFLD-FIELDNAME = 'SPARTE' .
SFLD-SELTEXT_S = 'Division'.
SFLD-SELTEXT_M = 'Division'.
SFLD-JUST = 'C' .
SFLD-NO_OUT = 'X' .
APPEND SFLD TO ITFLD .
CLEAR SFLD .
SFLD-FIELDNAME = 'ANLART' .
SFLD-SELTEXT_S = 'Inst. type'.
SFLD-SELTEXT_M = 'Inst. type'.
SFLD-JUST = 'C' .
SFLD-NO_OUT = 'X' .
APPEND SFLD TO ITFLD .
CLEAR SFLD .
SFLD-FIELDNAME = 'HAUS' .
SFLD-SELTEXT_S = 'Conn.obj.'.
SFLD-SELTEXT_M = 'Connection obj.'.
SFLD-JUST = 'C' .
SFLD-NO_OUT = 'X' .
APPEND SFLD TO ITFLD .
CLEAR SFLD .
SFLD-FIELDNAME = 'VBSART' .
SFLD-SELTEXT_S = 'Prem. type'.
SFLD-SELTEXT_M = 'Premise type'.
SFLD-JUST = 'C' .
SFLD-NO_OUT = 'X' .
APPEND SFLD TO ITFLD .
CLEAR SFLD.
SFLD-FIELDNAME = 'ABBELNR' .
SFLD-SELTEXT_S = 'Int.MRD ID'.
SFLD-SELTEXT_M = 'Int. MR doc. ID'.
SFLD-JUST = 'C' .
SFLD-NO_OUT = 'X' .
APPEND SFLD TO ITFLD .
CLEAR SFLD.
SFLD-FIELDNAME = 'ABLESGR' .
Maybe you are looking for
-
Sharing files trouble: "..belongs to a domain..."
Hello, I am trying to setup my business laptop to also network with my PC at home. I am able to access the internet without any trouble, but I am trying to enable file and printer sharing. After running the network wizard on the PC, I try to run the
-
SSIS 2012 -Not Executing file from other server.
Hi Experts , I am working on SQL 2012 I have a SSIS Package - 1) Execute SQL Task - calling Storeprocedure my StoreProcesdure contain OpenRowser Query which Pull Data from Excel and Load into SQL Table. Scenario 1 On Development Server example IP:
-
Table access by index rowid taking more time
Hi All I've a query like update tab1 set col1 = ( select col2 from tab2 where tab1.id = tab2.id) table 1 has arnd 10,000 rows table 2 has arnd 1,700,000 rows and has a primay key on column id. This query is t
-
TP4 FileExplorer tree: change Folder icon when expanded/collapsed
I am trying to create a tree similar with FileExplorer from the Demo application. I am trying to use two icons for every node: one for expanded node and another one for collapsed. I use a rowDisclosureListener tag rowDisclosureListener="#{menuBean.me
-
Need sql query logic for requirement
Hi gurus, i have requirement. please find below details. For one item having lot of purchase orders,the output should display like that Item Po Numbers FileName ========================================== A