In Maintenance View - Pushbutton called 'POSITION' - f4 help issue
Hi all,
A Maintenanve view was created for a Table with some 15 columns.This table contains 2 key fields and for first key field there is a Search help created in another table which contains this same fieid as key field.The second key field does not contain any search help.
This Maintenance view is used in another program.When viewing this Maintenance view there is pushbutton called 'POSITION'.
When clicked on this POSITION a POP-UP appears with this 2 key fields.F4 Help on these fields shows all fields from the table.
The second key field contains 3 fixed value in domain.
Need to restict the F4 VALUE HELP .How can I implement this.
With thanks,
Dina.
HI Dina,
Recently I have done this.Please find the below code. Here in SVAL structure there is a field NOVALUEHLP. Please enable or disable this field according to your requirement.
DATA: IT_FIELDS TYPE STANDARD TABLE OF SVAL WITH HEADER LINE,
popup_title type string,
returncode type c,
lv_emp_cc type bukrs,
lv_sold_to_cc type bukrs,
lv_nw_so type AUFNR,
lv_SMS_CON type NUM7,
lv_EMP_NO type NUM8,
lv_SMS_ORG type NUM7,
lv_ACTIVITY type VORNR,
lv_ZCOSTALLOC type ZCOSTALLOC.
POPUP_TITLE = 'Select entry'.
REFRESH: IT_FIELDS.
CLEAR: IT_FIELDS, returncode.
IT_FIELDS-TABNAME = 'ZCRM_MUS_DERIV'.
IT_FIELDS-FIELDNAME = 'EMP_CC'.
IT_FIELDS-FIELD_ATTR = ' '.
IT_FIELDS-FIELD_OBL = ' '.
APPEND IT_FIELDS.
CLEAR it_fields.
IT_FIELDS-TABNAME = 'ZCRM_MUS_DERIV'.
IT_FIELDS-FIELDNAME = 'SOLD_TO_CC'.
IT_FIELDS-FIELDTEXT = 'Sold to CC'.
IT_FIELDS-FIELD_OBL = ' '.
APPEND IT_FIELDS.
CLEAR it_fields.
IT_FIELDS-TABNAME = 'ZCRM_MUS_DERIV'.
IT_FIELDS-FIELDNAME = 'NW_SO'.
IT_FIELDS-FIELD_ATTR = ' '.
IT_FIELDS-FIELD_OBL = ' '.
APPEND IT_FIELDS.
CLEAR it_fields.
CALL FUNCTION 'POPUP_GET_VALUES'
EXPORTING
NO_VALUE_CHECK = 'X'
POPUP_TITLE = POPUP_TITLE
START_COLUMN = '5'
START_ROW = '5'
IMPORTING
RETURNCODE = RETURNCODE
TABLES
FIELDS = IT_FIELDS
EXCEPTIONS
ERROR_IN_FIELDS = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
"No action required.
ENDIF.
Similar Messages
-
F4 help for fields in maintenance view resp. generated maintenance screen
Hello,
Im new to ABAP and I have to deal with the following requirement:
I have a maintenance view V1 what from a maintenance screen was generated automatically by the maintenance screen generator.
Now I have to add a search help for one field F1 of the maintenance screen. The values for the search help of F1 depend on a specific value of a second field F2 of the maintenance screen. So I need value of F2 as import parameter for f4-help. F1 and F2 come from different tables.
As Im new to ABAP I have several questions or thoughts:
- Im not able to easily add a search help to F1 because Im using the maintenance view V1 and thats why it is not possible to assign the import parameter F2 to the search help right?
- In general, its not that easy to add search help to views than tables or structures - why?
- Im not able to just modify the generated objects because further automatic generation of the maintenance screen will delete it right?
- The generated function module provides user includes to add user specific coding. Is there any chance to add a f4-help to field F1 and assign value of F2 to that search help as import parameter with coding in user include?
- any other ideas? I did not expect this topic to be so complicated as the requirement to change f4-help in a maintenance view resp. screen isn't very special.
can anyone help me?
Thank You!
Regards
FabianHi Fabian,
Phew! Thats quite a few questions in one... I'll try to answer them to best of my knowledge..
You can definitely have an external Search Help for a field of a Maintenance View, by calling it directly in the Screen Action Flow, using a PROCESS ON VALUE-REQUEST (like PAI or PBO). While defining such custom code on a generated screen, always make sure you do not write the coding inside the generated includes (SVIM* or <FUGR>TOP, <FUGR>DAT, etc..). Define new includes, or use those which are not generated by View Maintenance. This way, even if the dialogue is regenerated, your custom code will not vanish.
This will answer your questions 1 and 2 generally, and your question 3 also.
A Maintenance View, is something where values are read and populated purely at run-time. It does not have an Entry Help or such options, as it depends on the underlying tables. I hope this further helps with questions 1 and 2.
Coming to your question 4 and 5, which form the main question - pre-filling value of F2 while calling search-help for F1 - yes, it is possible. On the view maintenance screen, there are standard structure variables (like EXTRACT TOTAL etc), which will give you the field values of the current record. But, it can no way assure that when you call the help for F1, the field F2 is already filled!
For this, I can suggest that you programmatically implement a check to see if F2 value is filled, and read if it is. Or, if it is not filled, maybe you can shoot a Pop-up for F2, take the value at run-time, find help for F1 and get value, and also fill the F2 value (from your implementation) into the currect screen F2 value! (Phew...it is complex...)
But am sorry, there is no other way, wherein you can gaurentee that F2 value is pre-filled always, when you can help for F1. (You could try making F2 as obligatory on screen, but it still doesnt necessarily solve this purpose..!).
Hope it helps. Get back to me by e-mail if you need more help, or simple post a reply.
Regards,
Rekha -
Is it Possible to change Maintenance view Structure SALV
Hi,
In Maintenance View is it possible to change POP UP field display. In maintenance view we have 'Position' button ,when clicked on that the key fields of the Table used in the maintenance view is displayed ,is there any possibilities to restict the field display from 3 to 2.
POP-UP is called when ' POSITION ' is clicked . POPUP_GET_VALUES_USER_HELP is the FM called . Is it possible to make changes to the structure SALV.
Any Events possible for make changes to structute SALV.
With Thanks,
dina.How can it become 120 all of a sudden? Afterall, it is from the table that you are selecting.
Please explaing in details what your problem is.
I don't understand what is happening here.
CREATE OR REPLACE FORCE VIEW MYVIEW
(ITEM_CODE ,
SHIP_TO_CODE,
ON_ORDERS,
REQ_DELIVERY_DATE,
PO_LINE_NO)
AS
(SELECT
decode(instr(item_code, '.', -1),
length(item_code),
substr(item_code, 1, length(item_code)-1),item_code) as item_code,
SHIP_TO_CODE,
ON_ORDERS,
ORDER_DATE,
CUSTOMER_PO_NUM
FROM T407_CUST_PO_DTL T407,
(SELECT SHIP_TO_ID,
SHIP_FROM_ID,
POHD_ID,
CUSTOMER_PO_NUM,
ORDER_DATE
FROM T406_CUST_PO_HDR) T406,
(SELECT decode(ON_ORDER_OVERRIDE,'-99999',ON_ORDER,NULL,ON_ORDER,ON_ORDER_OVERRIDE) as on_orders,
cust_product_id,
order_gen_date
FROM T401_ORDER_GEN) T401,
(select ship_to_code,
ship_to_id
from t306_ship_to) t306,
(select ship_from_code,
ship_from_id
from t208_ship_from) t208
WHERE t407.pohd_id = t406.pohd_id
and t407.customer_product_id = t401.cust_product_id
and t406.order_date = t401.order_gen_date
and t406.ship_to_id = t306.ship_to_id
and t406.ship_from_id = t208.ship_from_id
);You could've just used RTRIM(ITEM_CODE, '.')
Cheers
Sarma. -
Maintenance view Vs Table maintenance
Hi,
I would like to know the dif between T.Maintanance And Maintenance view.
As we know as per the def we know Maintenance view will be used to maintain a table. But I have never created any M.view for the same.
However we use Table maintenance generator and SM30 for the same. How these 2 concepts are differnet?
Which one is the best method 2 use?
what one step and two setp process? Advantage and usage of 2step process?
Thanks in advance.
PRaHi Praneet..
These two are different concepts altogether but they have some connection.
1. Table Maintenance: To facilitate the Updation / Viewing the Records of a Table thru a Tcode We have to Generate the Table maintenance (program and screens) in Tcode SE54.
This will generate the Function Groups and Screens required to Maintain the Entries in table.
Then only we can maintain this Table in Tcode SM30.
2. Maintenance view: It is one type of View which can be used to update/view the data from multiple tables at a time.
But after creating a Maintenance view, We must generate the Table maintenance .
Only then we can maintain the entries using a Maintenance view.
<b>REWARD IF HELPFUL.</b> -
Hi!
I've tried to create a maintenance view for two tables with help of sap liblary:
http://help.sap.com/saphelp_nw2004s/helpdata/en/cf/21ed2d446011d189700000e8322d00/content.htm
but it haven't work for some reason.
Colud anyone give a detailed example of creating simplest maintenance view for two tables (with correct definition of a foreign key)? One of them is a text table for another.
The view should insert records in both tables simultaneously.
Thanks!Hi,
go through this link.
Link:[http://help.sap.com/saphelp_40b/helpdata/en/cf/21ed2d446011d189700000e8322d00/content.htm]
Link :[table maintanace generator;
hope this help u out.
Regards,
Sneha.
Edited by: sneha kumari on Jun 16, 2009 8:33 AM -
What r the trns code for maintenance view, help view and projection view
hi all
what r the transaction code for maintenance view, help view and projection view
can anyone tell me how to create maitenance, help and projection view.
with an example
regs
hari<b>What is the Different Types and Usage of Views
The followings are different types of views:</b>
- <b>Database View (SE11)</b>
Database views are implement an inner join, that is, only records of the primary table (selected via the join operation) for which the corresponding records of the secondary tables also exist are fetched. Inconsistencies between primary and secondary table could, therefore, lead to a reduced selection set.
In database views, the join conditions can be formulated using equality relationships between any base fields. In the other types of view, they must be taken from existing foreign keys. That is, tables can only be collected in a maintenance or help view if they are linked to one another via foreign keys.
- <b>Help View ( SE54)</b>
Help views are used to output additional information when the online help system is called.
When the F4 button is pressed for a screen field, a check is first made on whether a matchcode is defined for this field. If this is not the case, the help view is displayed in which the check table of the field is the primary table. Thus, for each table no more than one help view can be created, that is, a table can only be primary table in at most one help view.
-<b> Projection View (SE11)</b>
Projection views are used to suppress or mask certain fields in a table (projection), thus minimizing the number of interfaces. This means that only the data that is actually required is exchanged when the database is accessed.
A projection view can draw upon only one table. Selection conditions cannot be specified for projection views.
<b>- Maintenance View ( SE54 )</b>
Maintenance views enable a business-oriented approach to looking at data, while at the same time, making it possible to maintain the data involved. Data from several tables can be summarized in a maintenance view and maintained collectively via this view. That is, the data is entered via the view and then distributed to the underlying tables by the system.
reward points if it is usefull...
Girish -
How to call a maintenance view from a program
Hello Abapers,
Can anybody explain with some examples. How to call a mainetenance view from a program.
Thanks
Ranjith.Use FM 'VIEW_MAINTENANCE_CALL'.
REPORT zmaintaintest.
VARIABLES / CONSTANTS
CONSTANTS:
c_action(1) TYPE c VALUE 'U', "Update
c_viewname TYPE tabname value 'ZEMP_EXAMPLE', "View Name
c_field(6) TYPE c VALUE 'EMPNO'. "Field Name
INTERNAL TABLES
DATA: itab_rangetab TYPE STANDARD TABLE OF vimsellist,
v_empno TYPE zempno,
wa_rangetab TYPE vimsellist.
SELECTION SCREEN
PARAMETERS: p_empno TYPE zempno OBLIGATORY. "Emplyee ID
AT SELECTION-SCREEN
AT SELECTION-SCREEN.
Chcking the existence of the user in EMPLOYEE table
PERFORM validate_employee.
START_OF_SELECTION
START-OF-SELECTION.
This will restrict the user view so that user can only view/change
Table data corresponding to his/her Employee ID
PERFORM define_limited_data_area.
Displaying table maintenance view for a particular employee ID
PERFORM call_view_maintenance.
*& Form validate_employee
Validate plant entered in the selection screen
FORM validate_employee.
SELECT SINGLE empno u201CEmployee ID
FROM zemp_example u201CEmployee Table
INTO v_empno
WHERE empno = p_empno.
IF sy-subrc <> 0.
MESSAGE 'Not an Valid User' TYPE 'I'.
ENDIF.
ENDFORM. "validate_employee
*& Form DEFINE_LIMITED_DATA_AREA
To restrict the user view so that user can see/change table data
corresponding to his employee ID. Here one internal table is
getting populated with field name as u201CEMPNOu201D (Key field of the table)
And value as given by user in Selection Screen and this is passed as
Parameter in function module 'VIEW_MAINTENANCE_CALL'
FORM define_limited_data_area.
CLEAR wa_rangetab.
wa_rangetab-viewfield = c_field.
wa_rangetab-operator = 'EQ'.
wa_rangetab-value = p_empno.
APPEND wa_rangetab TO itab_rangetab.
ENDFORM. "define_limited_data_area
*& Form CALL_VIEW_MAINTENANCE.
Displaying table maintenance view for a particular employee ID
FORM call_view_maintenance.
CALL FUNCTION 'VIEW_MAINTENANCE_CALL'
EXPORTING
action = c_action
view_name = c_viewname
TABLES
dba_sellist = itab_rangetab.
ENDFORM. "call_view_maintenance
Regards,
Joy. -
Hi dear,
pl'z assist me what is the base table in maintenance view, i m creating that view but i m facing this problem which is related to the base table. ? we can create that viewgo through the link
<a href="http://help.sap.com/saphelp_webas620/helpdata/en/cf/21ec5d446011d189700000e8322d00/content.htm">http://help.sap.com/saphelp_webas620/helpdata/en/cf/21ec5d446011d189700000e8322d00/content.htm</a>
regards
shiba dutta -
Hi all,
Can someone help me with giving step by step detials of how to create Maintenance View using SM30, or atleast a pointer showing the information location..
Regards,
-Ashok Hansraj<b>Please take time to read all the responses given to you in other posts, reward them appropriately and close them if answered.</b>
SM30 uses the maintenance view you create, it does not create it. You have to create maintenance view by following the path in SE11>Change>Utilities-->Table Maintenance Generator.
Alternatively, you can also use SE54. Enter your table name and then select 'Generated Objects' radiobutton, press 'create'.
Srinivas -
Easier way to view phone call logs? Also, help with email setup...
1. On my 8220 it's not very efficient to view past call logs and or missed calls. I have to go into my Messages folder, click the menu button, scroll down to 'view folder' and then scroll down to my 'Phone Call Logs'. Is there a way to create a folder dedicated to viewing call logs and my missed calls on my home screen without going through all that timely navigating? Is there a special download for this application? I've seen this folder on the BB 101 tutorial webpage.
I'm with Rogers Wireless if that helps.
2. When I select the Email Setup it only gives me the the option to "I want to use a work email account with a BlackBey Enterprise Server" and no option for the "I want to create or add an email address" which I see on the BB 101 tutorial webpage. Well, I'd like to create or add an email address. How can I get that option on my phone?
Oh and one more thing, is the 8220 able to run the BB maps application?
Any help is much appreciated!1) While in your messages folder, try pressing ALT + P to bring up the phone logs without all the navigating. (I know that works on other BB models, I don't know on the 8220).
2) Do you have a BB Data Plan on your carrier account? Once it is , you will get the personal email setup icon.
1. If any post helps you please click the below the post(s) that helped you.
2. Please resolve your thread by marking the post "Solution?" which solved it for you!
3. Install free BlackBerry Protect today for backups of contacts and data.
4. Guide to Unlocking your BlackBerry & Unlock Codes
Join our BBM Channels (Beta)
BlackBerry Support Forums Channel
PIN: C0001B7B4 Display/Scan Bar Code
Knowledge Base Updates
PIN: C0005A9AA Display/Scan Bar Code -
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' . -
How to use table maintenance view in module pool screen
hi ,
want to use table maintenance view in a module pool screen so that i can edit, insert, delete and update date in to the ztable.please help.You can simply call it via SM30. Or you can call the table maintence view from any program(report or module pool) using a function module.
call function 'VIEW_MAINTENANCE_CALL'
exporting
action = 'U'
view_name = 'Z_Table_Name'
exceptions
client_reference = 1
foreign_lock = 2
invalid_action = 3
no_clientindependent_auth = 4
no_database_function = 5
no_editor_function = 6
no_show_auth = 7
no_tvdir_entry = 8
no_upd_auth = 9
only_show_allowed = 10
system_failure = 11
unknown_field_in_dba_sellist = 12
view_not_found = 13
others = 14.
Regards,
RIch Heilman -
Unable to edit maintenance view in SM30
hi everyone.
need your help, I have one custom table, let's call it YTAB. This table has several maintenance views created for it, depending on company code. For YTAB, i have created a maintenance view YTABX.
When we moved YTABX to PRD, we cannot edit it in SM30. The user ID has the right authorization. The error message is "client 100 not modifiable". When I try to edit the mother table YTAB in PRD, I am able to go in and do the changes.
I have already compared the settings for YTABX with the other existing views, they are the same. My settings for the view are:
Access: Read, change, delete & insert
Delivery Class: C
In the table maintenance generator, i have a 2-step maintenance type, recording routine is Standard recording routine and compare flag is automatically adjustable.
Attributes for table YTAB also has delivery class C, table category is transparent table, table maintenance is allowed.
Thank you in advance.Hello roch,
the direction in which mark points is right but i think you should get some more information on the principles of table types and sap system landscape.
Usually you should not be able to directly maintain any table. This is not only bad style but also a huge risk for the system consistency. That's why application data is always maintained via some kind of application which ensures that the data is vilidated before it is stored.
Customizing data should only be maintained within a development system and then transported through the landscape. To maintain these table you can use generated views, customer developed maintenance views, view clusters which all include automatical link to the transport system. If you would maintain these tables directly in the productiion system it would have another configuration than the development and the quality/test system which makes them more or less useless as you can no longer make any serious test if the server configurations differ.
To prohibit changes of customizing tables on production and test servers the admins lock the systems which results in the message you got. This setting is made in TCODE SCC4. Even if you have for any reason the authorization to use this transaction you should in no case change these settings without approval of basis / system owner.
Kind Regards
Roman -
Hi,
I am doing some validations in the "Before Save to Database" event of a maintenance view. I am accessing the <viewname>_total table in the event and it works fine.
Now I am using this view in a view cluster. When I maintain the data through view cluster, this event gets triggered but the
<viewname>_total comes empty. What could be the reason for this? Is there any other alternative?
Thanks and regards,
Pankaj
Edited by: Pankaj on May 12, 2008 11:12 AMHello Pankaj,
In a View cluster, there are more than one view program being called by a common program. Hence, there is not a single TOTAL or EXTRACT structure for a single view, at any given point of time.
Instead, you can make use of the form routine vcl_set_table_access_for_obj in your event calls, and read the TOTAL and global variables for your current view. The method interface is like -
PERFORM vcl_set_table_access_for_obj USING '(name of your view)'
CHANGING lv_error_flag.
You can further define local variables/internal tables of relevant structures to read the data into, and proceed to implement your logic.
More info - [View Cluster Maintenance events|http://help.sap.com/saphelp_47x200/helpdata/en/91/ca9f32a9d111d1a5690000e82deaaa/frameset.htm]
Best Regards,
Rekha -
Maintenance view: how to read EXTRACT and TOTAL table
Hi, All,
I created a maintenance view, as stated in the documentation, there are 2 internal tables EXTRACT and TOTAL available in running environment. Now I want to read a record from the internal table by using "READ TABLE...."
In my example: the table strucutre has A, B, C 3 fields.
So I tried to use "READ TABLE EXTRACT with key A=' xyz' assigning <fs>", in this case, the syntax check shows error saying that the specified type has no structure and no component can be called.
So how can I search a row in the table EXTRACT and TOTAL by giving a field value? Is there any other way to get data from the table?
Thank you!Hi Yongying,
I know this is an old post, but, may be this is still helpful for you or for others with the same problem.
Just add the option "CASTING" at the end of your READ statement:
"READ TABLE EXTRACT with key A=' xyz' assigning must be full typed or at least, be of the same type of the Z table from which is generated the itab EXTRACT.
Regards,
José Gabriel.
Maybe you are looking for
-
Memory upgrade for Satellite L30-134
I have a Satellite L30-134 which appears to be running quite slowly - I think due to large amount of photos and itunes music. I am wondering which is the easiest way to resolve - buy a memory upgrade (no idea how to change the memory though) or get a
-
Hi. I started a Creative Cloud abonement and try to install applications. But the download of the "adobe creative cloud desktop" always stops with error code 207 (No answer from server, try later). I am trying for 6 hours but the problem is still the
-
My WLCM does not boot, it shows this: Initializing memory. Please wait. 256 MB SDRAM detected BIOS Version: SM 02.00 BIOS Build date: 09/17/02 System Now Booting ... Booting from disk..., please wait. Embedded BIOS Debugger Single Step Trap EAX = FF
-
How can I get a contact number deleted
I delete it by mistake a number and I need to call back
-
Any idea on why contacts disappear from phone?
Any idea on why contacts disappeared?