Contextual event on table not triggered
Using Jdev PS4.
Concider following example: http://www.yonaweb.be/ContextualEvent.zip
(I know following example can be simplified by using master-detail relation in the data control but it's to illustrate the example)
I have two taskflows: EmployeeTF and departmentTf.
The idea is to trigger an event when I select a new record in the department table.
This is the tree binding:
<tree IterBinding="DepartmentsIterator" id="Departments">
<nodeDefinition DefName="model.views.DepartmentsView" Name="Departments0">
<AttrNames>
<Item Value="DepartmentId"/>
<Item Value="DepartmentName"/>
<Item Value="ManagerId"/>
<Item Value="LocationId"/>
</AttrNames>
<events xmlns="http://xmlns.oracle.com/adfm/contextualEvent">
<event name="changeTheDept"
customPayLoad="${bindings.DepartmentId.inputValue}"
eventType="Currency Change Event"/>
</events>
</nodeDefinition>
</tree> I have created a custom java class to use as a data control to find out when the event is triggered. This is my code:
public void handleEvent(Object payload){
System.out.println("Event handler");
System.out.println(payload);
}When I select a record in the table, the event does not get fired.
So as a test I added my own custom method to see if contextual events are working properly so I added this method to my DC:
public void triggerEvent(){
System.out.println("triggering event");
}and added it on a commandLink to the DepartmentTF. I also added an event on it:
<methodAction id="triggerEvent" RequiresUpdateModel="true"
Action="invokeMethod" MethodName="triggerEvent"
IsViewObjectMethod="false" DataControl="EmpBean"
InstanceName="EmpBean.dataProvider">
<events xmlns="http://xmlns.oracle.com/adfm/contextualEvent">
<event name="triggerEvent"
customPayLoad="#{bindings.DepartmentId.inputValue}"/>
</events>
</methodAction>When I trigger this event, my event handler does get called on the employee taskflow.
So, my question is:
1) Is this normal behavior that the change row event is not triggered?
2) if yes, how do I trigger it or what is the purpose of this event?
Edited by: Yannick Ongena on May 28, 2012 9:03 PM
I have a similar circumstance: I have a page with two regions, each region contains a table. The two tables share some information so when I update one of them
I also want the change to be reflected in the other table. I tried to use contextual events to send an event that causes one of the tables to refresh (I do not pass any payload)
but so far I have not had any success with making this work. I am wondering if the bug you mentioned here would also prevent such a setup to work? I am using Jdev 11g R1 11.1.1.6.2.
Similar Messages
-
DATA_CHANGED event handler is not triggered after input.(OO ALV)
Dear Experts,
What I did:
I register Enter as the trigger event for data_changed event, and I put my checking logic in data_changed_handler which is a method of a local class. When the checking fails, I put messages using er_data_changed->add_protocal_entry to show messages.
My checking is simple, if the cell is empty, error messages pops up tells that this cell can not be blank for this row.
My problem:
When there is no entry in the alv list(Only this situation), I insert a new entry, the cell which is required is empty, I press Enter, data_changed event is triggered, the message pops up saying that the cell is required. Then close the pop up message window, I input something in the cell, and press enter. The data_changed event is not triggered.
Is there any1 has any ideas on this problem?
Vicnent
Edited by: Changjiu Tan on Sep 7, 2009 1:33 PMMETHOD HANDLE_DATA_CHANGED. "#EC NEEDED
*<<< BEGIN MODIFY EXAMPLE CODE
* u4FDDu5B58u30C7u30FCu30BFu3092u7DE8u96C6u3059u308Bu3000START
DATA: LW_INS TYPE LVC_S_MOCE,
LV_FNAME TYPE LVC_FNAME,
LW_MOD TYPE LVC_S_MODI,
LV_MAX TYPE I,
LV_RES(12) TYPE C,
LW_LIST TYPE ZTSRE012,
LV_ROWID TYPE LVC_S_ROID,
LT_MOD TYPE LVC_T_MODI,
LV_COLID TYPE LVC_S_COL,
LV_ROW_ID TYPE LVC_S_ROW,
LV_COL_ID TYPE LVC_S_COL.
* u73FEu5728u306Eu30D5u30A9u30FCu30ABu30B9u4F4Du7F6Eu3092u53D6u5F97
CALL METHOD GO_ALV_GRID7->GET_CURRENT_CELL
IMPORTING
ES_ROW_ID = LV_ROW_ID
ES_COL_ID = LV_COL_ID.
LOOP AT GT_LIST INTO LW_LIST.
IF LW_LIST-ID > LV_MAX.
LV_MAX = LW_LIST-ID.
ENDIF.
ENDLOOP.
* u30B0u30EBu30FCu30D7ID
LV_FNAME = CNS_ID.
LOOP AT ER_DATA_CHANGED->MT_INSERTED_ROWS INTO LW_INS.
LV_MAX = LV_MAX + 1.
CALL METHOD ER_DATA_CHANGED->MODIFY_CELL
EXPORTING
I_ROW_ID = LW_INS-ROW_ID
I_FIELDNAME = LV_FNAME
I_VALUE = LV_MAX.
ENDLOOP.
CLEAR: LV_FNAME.
LT_MOD[] = ER_DATA_CHANGED->MT_GOOD_CELLS[].
* u30C7u30FCu30BFu30C1u30A7u30C3u30AF
LOOP AT LT_MOD INTO LW_MOD.
IF LW_MOD-FIELDNAME = CNS_ZZTTSN.
LV_COLID-FIELDNAME = LW_MOD-FIELDNAME.
LV_ROWID-ROW_ID = LW_MOD-ROW_ID.
CALL METHOD GO_ALV_GRID7->SET_CURRENT_CELL_VIA_ID
EXPORTING
IS_COLUMN_ID = LV_COLID
IS_ROW_NO = LV_ROWID.
CALL METHOD GO_ALV_GRID7->GET_CURRENT_CELL
IMPORTING
E_VALUE = LV_RES.
IF LV_RES IS INITIAL.
CALL METHOD ER_DATA_CHANGED->ADD_PROTOCOL_ENTRY
EXPORTING
I_MSGID = CNS_MSGID
I_MSGTY = CNS_MSGTY
I_MSGNO = CNS_MSGNO
I_FIELDNAME = LW_MOD-FIELDNAME
I_ROW_ID = LW_MOD-ROW_ID.
ENDIF.
CALL METHOD ER_DATA_CHANGED->MODIFY_CELL
EXPORTING
I_ROW_ID = LW_MOD-ROW_ID
I_FIELDNAME = LW_MOD-FIELDNAME
I_VALUE = LV_RES.
ENDIF.
CLEAR: LV_RES,
LV_COLID,
LV_ROWID.
ENDLOOP.
CALL METHOD GO_ALV_GRID7->SET_CURRENT_CELL_VIA_ID
EXPORTING
IS_ROW_ID = LV_ROW_ID
IS_COLUMN_ID = LV_COL_ID.
ENDMETHOD. "handle_data_changed
Edited by: Changjiu Tan on Sep 7, 2009 1:31 PM
Edited by: Changjiu Tan on Sep 7, 2009 1:32 PM -
Event CREATED is not triggered for objects of type USER
Dear all,
I'm currently configuring a workflow, which should be started when new user account is created. I took event CREATE for object type USER as a start event, but the workflow does not start, when I create new user account via transaction code SU01. If I test workflow in SWUS, everything works fine. I checked the event trace, but it shows no records for events triggered when I use SU01 and create a user.
Could you please advise how I can activate triggering of this event without using ABAP-developed event trigger?
Thank you in advance.but here the requirement is to trigger workflow after the user account is created in the system.
One more way to trigger a workflow is by the messages output. I mean when a user account is created successfully then a message will displayed on the screen let say User ABC created Successfully right so, when ever this message is raised then you can start the workflow by using this message. this can be done by using the txn SWUY
1. Open SWUY txn.
2. Click on Continue and in the next screen give the area as the message class name from which the message is getting triggered and its number in the field Message and click on continue.
3. Then it will open the PFTC txn mention the description and click on the workflow builder button and design the workflow as per you requirement.
and once this is done , so when ever the message from the above mentioned message class is raised at that time your workflow will also be started.
In this way I hope you can reduce your development time , searching for the right BADI or User exit and implementing the code and testing..
Here in the above txn all you have to make sure that from which message class the message is getting displayed once the user is created successfully, I suggest you a way is you create a dummy user and once the dummy user is created succeffully system will display the message right?, so just double click on the message at the bottom of the screen this will let you knwo what is the message class and number it is using. and once you know tyr to approach the above steps.... -
OIM 11gR2 - RoleUser PostProcess Event Handler not triggered
Hi,
I'm trying to create a postprocess event-handler for RoleUser entity so that when a role is assigned (or removed) to a user an UDF is populated with the list of its roles.
I developed my event-handler and registered it following instructions on http://docs.oracle.com/cd/E27559_01/dev.1112/e27150/oper.htm#OMDEV4749 but the event-handler is not triggered.
I've read and tried a lot of things but nothing seems to work.
I use System.out.println() and a Logger in the event-handler methods as well as breakpoints debugging via Eclipse, all this indicates the event-handler is not triggered.
I checked the event-handler is registered by using getEventHandlers(RoleUser,CREATE) method on IAMAppDesignMBean through Enterprise Manager. Result is :
Postprocess,-2147483648,PostProcessingInitiation,/metadata/iam-features-request/event-definition/EventHandlers.xml,true
Postprocess,FIRST,MyHandler,Plugin:MyHandler,false
Postprocess,FIRST,MyHandler,Plugin:MyHandler,false
Postprocess,FIRST,MyHandler,Plugin:MyHandler,false
Postprocess,FIRST,MyHandler,Plugin:MyHandler,false
Postprocess,1020,RoleGrantPostProcessActionHandler,/metadata/iam-features-identity/event-definition/EventHandlers.xml,false
Postprocess,9988,AsyncHandler,/metadata/iam-features-asyncwsclient/EventHandlers.xml,true
Postprocess,3000000,CallBackOAACGWithApprove,/metadata/iam-features-rolesod/EventHandlers.xml,true
Postprocess,2147483647,RequestCompleted,/metadata/iam-features-request/event-definition/EventHandlers.xml,true
Note that I dont understand why the handler appears four times..
Also, when I unregister it, it still appears one time.
Here is my event handler XML file (in META-INF folder of the plugin zip) :
<?xml version='1.0' encoding='utf-8'?>
<eventhandlers
xmlns="http://www.oracle.com/schema/oim/platform/kernel/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.oracle.com/schema/oim/platform/kernel orchestration-handlers.xsd">
<action-handler
class="package.MyHandler"
entity-type="RoleUser"
operation="ANY"
name="MyHandler"
stage="postprocess"
order="FIRST"
sync="TRUE" />
</eventhandlers>
plugin.xml file (root of plugin zip) :
<?xml version="1.0" encoding="UTF-8"?>
<oimplugins xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<plugins pluginpoint="oracle.iam.platform.kernel.spi.EventHandler">
<plugin
pluginclass="package.MyHandler"
version="1.0"
name="Myhandler" />
</plugins>
</oimplugins>
Java code (in a JAR in lib folder of plugin zip) :
public class MyHandler implements PostProcessHandler {
@Override
public EventResult execute(long processId, long eventId, Orchestration orchestration) {
System.out.println("Inside EventResult execute ");
LOGGER.log(Level.SEVERE, "Inside eventResult execute");
// Some code
return new EventResult();
@Override
public BulkEventResult execute(long processId, long eventId, BulkOrchestration orchestration) {
String operation = orchestration.getOperation().trim().toString();
System.out.println("<---------- Calling " + getClass().getName() + ": Operation[" + operation + "] Execute ---------->");
LOGGER.log(Level.SEVERE, "Inside BulkEventResult execute");
// Some code
return new BulkEventResult();
Maybe I'm missing something ? Any help would be really appreciated
Thanks,
Gael
EDIT :
Also note that I see these messages in the logs but I'm not sure it concern my event handler from what I read on some pages :
XML schema validation failed for XML eventhandlers and it will not be loaded by kernel.
[CALLBACKMSG] Found 0 possible matches for applicable policies for step POST_PROCESS, entity RoleUser, operation CREATE.
Related link : Post process event handler when a role is created or modified in OIMI eventually got it working but I'm not sure of how.. !
I changed the name of the handler (it was not "MyHandler" but something very long, I shortened it). I copy and paste exactly what was described here : Post process event handler when a role is created or modified in OIM. I did purge cache. I tried to apply it on another entity (Role), it was triggered, then I applied it back to RoleUser and it still works.
If it can help someone, my plugin zip contains :
plugin.xml :
<?xml version="1.0" encoding="UTF-8"?>
<oimplugins xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<plugins pluginpoint="oracle.iam.platform.kernel.spi.EventHandler">
<plugin pluginclass="fr.xxx.RoleUserProcessor"
version="1.0" name="RoleUserProcessor" />
</plugins>
</oimplugins>
META-INF/EventHandlers.xml :
<?xml version="1.0" encoding="UTF-8"?>
<eventhandlers xmlns="http://www.oracle.com/schema/oim/platform/kernel"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.oracle.com/schema/oim/platform/kernel orchestration-handlers.xsd">
<action-handler class="fr.xxx.RoleUserProcessor"
entity-type="RoleUser" operation="ANY" name="RoleUserProcessor" order="9999"
stage="postprocess" sync="TRUE" />
</eventhandlers>
lib/xxx.jar/RoleUserProcessor.java :
@Override
public EventResult execute(long processId, long eventId, Orchestration orchestration) {
LOGGER.log(Level.INFO, "Execution RoleUserProcessor EventHandler (mode non bulk)");
String operation = orchestration.getOperation().trim().toString();
LOGGER.log(Level.INFO, "Operation : " + operation);
return new EventResult();
@Override
public BulkEventResult execute(long processId, long eventId, BulkOrchestration orchestration) {
LOGGER.log(Level.INFO, "Execution RoleUserProcessor EventHandler (mode bulk)");
String operation = orchestration.getOperation().trim().toString();
LOGGER.log(Level.INFO, "Operation : " + operation);
return new BulkEventResult();
Thank you
Also, a thing that may help some people, I found out that the ORCHEVENTS table in OIM schema contains the history of handlers triggered. -
hi all,
i have a problem in my bsp page.
in my bsp page, there is a button which is clicked, a new pop up window will appear. after the pop up window closed the caller window will be submitted.
after submitted, the server side script ( ABAP Code in event OnInputProcessing & OnInitiallization will be run ).
in order to be able to do this, i used java script. and it's already works well.
the problem is : there is 1 record that the ABAP code in event OnInputProcessing is not run. I have set break points on one of code in event OnInputProcessing, but it seems event OnInputProcessing is not triggered. if i also put the break point in event OnInitialization, it will stop in the break point in event OnInitialization.
is there any clue why this happened ?
please help, it's urgent because it's happened in my production system
many thanks in advance
regards
eddhiehi Raja,
thanks for the respond.
the code is already works for 2 years and just 1 record of ... perhaps thousands record that used the same code.
for other record, it go to event OnInputProcessing
but just this 1 record it won't go to event OnInputProcessing.
any clue ?
please help
regards -
MouseListener event not triggering sometimes
lineTable = atmBean1.getReturnTable();
//remove the other columns
lineTable.removeColumn(lineTable.getColumnModel().getColumn(21));
lineTable.removeColumn(lineTable.getColumnModel().getColumn(20));
lineTable.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
setChargesPanel();
public void setChargesPanel()
lblConsdData.setText(mainPanel.formatDollar(Double.parseDouble(String.valueOf(atmBean1.tm.getValueAt(lineTable.getSelectedRow(),11)))));
lblAllowedData.setText(mainPanel.formatDollar(Double.parseDouble(String.valueOf(atmBean1.tm.getValueAt(lineTable.getSelectedRow(),13)))));
lineChargesPanel.validate();
lineChargesPanel.repaint();
}when the JTable is set with some data, i have another GUI which has some labels , when the row is selected the corresponding values are taken from the original table model and is displayes in the JLabels.
Sometimes, when the mouse is clicked it is not triggering thisis it just because its Swing GUI.. the JTable rows sometimes get selected but the event is not triggered when the mouse is clicked, maybe the API is not good ???????.
-
Events not triggering in alv list, point will be given
Hi friends,
I am using reuse_alv_list_display fm to display data.
and i am using reuse_alv_events_get fm to trigger events.
but, top_of_page, event is not triggering,
more precisely , the subroutine is not getting recognized by system. how to rectify this.
Check my code.
*& Report ZSEN_SERVICETAX_GTA
REPORT zsen_servicetax_gta NO STANDARD PAGE HEADING LINE-COUNT 100.
*****************************************TABLES USED**********************************************************************
*TABLES: BSIS, "Accounting: Secondary Index for G/L Accounts
BSAS, "Accounting: Secondary Index for G/L Accounts (Cleared Items)
LFA1. "Vendor Master (General Section).
*****************************************WORK AREA / INTERNAL TABLE DECLARATION******************************************
TYPE-POOLS: slis.
TYPES: BEGIN OF ty_main,
hkont TYPE bsis-hkont,
belnr TYPE bsis-belnr,
budat TYPE bsis-budat,
blart TYPE bsis-blart,
dmbtr TYPE bsis-dmbtr,
xblnr TYPE bsis-xblnr,
shkzg TYPE bsis-shkzg,
augbl TYPE bsis-augbl,
kz_dmbtr TYPE bsis-dmbtr,
kz_xblnr TYPE bsis-xblnr,
kz_blart TYPE bsis-blart,
kz_belnr TYPE bsis-belnr,
kz_budat TYPE bsis-budat,
kz_zuonr TYPE bsis-zuonr,
name1 TYPE lfa1-name1,
slno TYPE i,
END OF ty_main,
BEGIN OF ty_bsas,
belnr TYPE bsas-hkont,
budat TYPE bsas-budat,
xblnr TYPE bsas-xblnr,
augbl TYPE bsas-augbl,
dmbtr TYPE bsas-dmbtr,
blart TYPE bsas-blart,
zuonr TYPE bsas-zuonr,
END OF ty_bsas.
DATA: it_main TYPE TABLE OF ty_main,
wa_main LIKE LINE OF it_main,
it_bsas TYPE TABLE OF ty_bsas,
wa_bsas LIKE LINE OF it_bsas.
DATA: it_sort TYPE slis_t_sortinfo_alv,
fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,
gd_layout TYPE slis_layout_alv,
gt_events TYPE slis_t_event,
int_fcat TYPE slis_fieldcat_alv,
it_header TYPE slis_t_listheader,
wa_header TYPE slis_listheader.
************************************************work variables***********************************************************************
DATA: ven_name TYPE lfa1-name1,
post_date TYPE bsis-budat,
t_tabix TYPE sy-tabix,
i_prg LIKE sy-repid.
***********************************************selection screen***********************************************************************
SELECTION-SCREEN: BEGIN OF BLOCK gtn WITH FRAME TITLE text-001 .
SELECT-OPTIONS: date FOR post_date OBLIGATORY.
SELECTION-SCREEN: END OF BLOCK gtn.
************************************************data selection**************************************************************************
START-OF-SELECTION.
PERFORM data_retreval.
PERFORM build_catalog.
PERFORM layout.
PERFORM build_events.
PERFORM sortinfo.
IF it_main[] IS NOT INITIAL.
PERFORM display_alv.
ELSE.
MESSAGE 'No Records Matching For This Selection' TYPE 'E'.
ENDIF.
******************************data display*********************************************************************************************
*& Form data_retreval
text
--> p1 text
<-- p2 text
FORM data_retreval .
CLEAR:it_main[], wa_main, fieldcatalog[].
***********************************************selecting data from bsis table for the given date range**********************************
SELECT ahkont abelnr abudat ablart admbtr axblnr a~shkzg
b~augbl
INTO CORRESPONDING FIELDS OF TABLE it_main
FROM bsis AS a LEFT OUTER JOIN bsas AS b
ON abelnr = bbelnr
WHERE a~budat IN date
AND a~blart = 'KR'
AND a~shkzg = 'S'
AND a~hkont = '0002200530'.
***********************************************selecting data from bsas table using bsis-belnr*******************************************
LOOP AT it_main INTO wa_main.
SELECT belnr budat dmbtr xblnr zuonr augbl blart
INTO CORRESPONDING FIELDS OF wa_bsas
FROM bsas
WHERE belnr = wa_main-augbl
AND blart = 'KZ'.
ENDSELECT.
APPEND wa_bsas TO it_bsas.
ENDLOOP.
********************************************combining two tables data******************************************************************
LOOP AT it_main INTO wa_main.
t_tabix = sy-tabix.
wa_main-slno = t_tabix.
READ TABLE it_bsas INTO wa_bsas WITH KEY augbl = wa_main-augbl.
IF sy-subrc = 0.
SELECT SINGLE name1
FROM lfa1
INTO ven_name
WHERE lifnr = wa_bsas-zuonr.
wa_main-kz_dmbtr = wa_bsas-dmbtr.
wa_main-kz_belnr = wa_bsas-belnr.
wa_main-kz_blart = wa_bsas-blart.
wa_main-kz_budat = wa_bsas-budat.
wa_main-kz_xblnr = wa_bsas-xblnr.
wa_main-kz_zuonr = wa_bsas-zuonr.
wa_main-name1 = ven_name.
ENDIF.
MODIFY it_main FROM wa_main INDEX t_tabix TRANSPORTING kz_dmbtr kz_belnr kz_budat kz_blart kz_xblnr kz_zuonr name1 .
ENDLOOP.
SORT it_main BY kz_blart kz_zuonr.
LOOP AT it_main INTO wa_main.
wa_main-slno = sy-tabix.
MODIFY it_main FROM wa_main INDEX sy-tabix TRANSPORTING slno.
ENDLOOP.
ENDFORM. " data_retreval
*& Form build_catalog
text
--> p1 text
<-- p2 text
FORM build_catalog .
DATA: col_pos TYPE i.
col_pos = col_pos + 1.
fieldcatalog-fieldname = 'SLNO'.
fieldcatalog-seltext_m = 'Serial No'.
fieldcatalog-col_pos = col_pos.
APPEND fieldcatalog TO fieldcatalog.
CLEAR: fieldcatalog.
col_pos = col_pos + 1.
fieldcatalog-fieldname = 'KZ_ZUONR'.
fieldcatalog-seltext_m = 'Vendor Num'.
fieldcatalog-col_pos = col_pos.
APPEND fieldcatalog TO fieldcatalog.
CLEAR: fieldcatalog.
col_pos = col_pos + 1.
fieldcatalog-fieldname = 'NAME1'.
fieldcatalog-seltext_m = 'Vendor Name'.
fieldcatalog-col_pos = col_pos.
APPEND fieldcatalog TO fieldcatalog.
CLEAR: fieldcatalog.
col_pos = col_pos + 1.
fieldcatalog-fieldname = 'BLART'.
fieldcatalog-seltext_m = 'BillDoc.Type'.
fieldcatalog-col_pos = col_pos.
APPEND fieldcatalog TO fieldcatalog.
CLEAR: fieldcatalog.
col_pos = col_pos + 1.
fieldcatalog-fieldname = 'BELNR'.
fieldcatalog-seltext_m = 'BillDoc.Num.'.
fieldcatalog-col_pos = col_pos.
APPEND fieldcatalog TO fieldcatalog.
CLEAR: fieldcatalog.
col_pos = col_pos + 1.
fieldcatalog-fieldname = 'BUDAT'.
fieldcatalog-seltext_m = 'BillPosting Date'.
fieldcatalog-col_pos = col_pos.
APPEND fieldcatalog TO fieldcatalog.
CLEAR: fieldcatalog.
col_pos = col_pos + 1.
fieldcatalog-fieldname = 'XBLNR'.
fieldcatalog-seltext_m = 'BillReference Num'.
fieldcatalog-col_pos = col_pos.
APPEND fieldcatalog TO fieldcatalog.
CLEAR: fieldcatalog.
col_pos = col_pos + 1.
fieldcatalog-fieldname = 'DMBTR'.
fieldcatalog-seltext_m = 'Bill Amount'.
fieldcatalog-col_pos = col_pos.
fieldcatalog-do_sum = 'X'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR: fieldcatalog.
col_pos = col_pos + 1.
fieldcatalog-fieldname = 'KZ_BLART'.
fieldcatalog-seltext_m = 'Pay_Doc.type'.
fieldcatalog-col_pos = col_pos.
fieldcatalog-do_sum = 'X'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR: fieldcatalog.
col_pos = col_pos + 1.
fieldcatalog-fieldname = 'KZ_BELNR'.
fieldcatalog-seltext_m = 'Pay_Document No'.
fieldcatalog-col_pos = col_pos.
APPEND fieldcatalog TO fieldcatalog.
CLEAR: fieldcatalog.
col_pos = col_pos + 1.
fieldcatalog-fieldname = 'KZ_DMBTR'.
fieldcatalog-seltext_m = 'Payment Amount'.
fieldcatalog-col_pos = col_pos.
fieldcatalog-do_sum = 'X'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR: fieldcatalog.
col_pos = col_pos + 1.
fieldcatalog-fieldname = 'KZ_XBLNR'.
fieldcatalog-seltext_m = 'Pay_Reference Num'.
fieldcatalog-col_pos = col_pos.
APPEND fieldcatalog TO fieldcatalog.
CLEAR: fieldcatalog.
col_pos = col_pos + 1.
fieldcatalog-fieldname = 'KZ_BUDAT'.
fieldcatalog-seltext_m = 'Pay_Posting Date'.
fieldcatalog-col_pos = col_pos.
APPEND fieldcatalog TO fieldcatalog.
CLEAR: fieldcatalog.
col_pos = col_pos + 1.
fieldcatalog-fieldname = 'AUGBL'.
fieldcatalog-seltext_m = 'Clr.Doc.Num'.
fieldcatalog-col_pos = col_pos.
fieldcatalog-row_pos = 2.
APPEND fieldcatalog TO fieldcatalog.
CLEAR: fieldcatalog.
ENDFORM. " build_catalog
*& Form sortinfo
text
--> p1 text
<-- p2 text
FORM sortinfo .
DATA: is_sort TYPE slis_sortinfo_alv.
CLEAR:is_sort.
is_sort-spos = 2.
is_sort-fieldname = 'KZ_ZUONR'.
is_sort-up = 'X'.
APPEND is_sort TO it_sort.
CLEAR: is_sort.
is_sort-spos = 1.
is_sort-fieldname = 'KZ_BLART'.
is_sort-up = 'X'.
is_sort-subtot = 'X'.
APPEND is_sort TO it_sort.
ENDFORM. " sortinfo
*& Form layout
text
--> p1 text
<-- p2 text
FORM layout .
gd_layout-no_input = 'X'.
gd_layout-colwidth_optimize = 'X'.
gd_layout-zebra = 'X'.
*gd_layout-totals_text = 'Grand Total'.
*gd_layout-subtotals_text = 'BillBooked Not Paid'.
ENDFORM. " layout
*& Form display_alv
text
--> p1 text
<-- p2 text
FORM display_alv .
i_prg = sy-repid.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = 'I_PRG'
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = 'TOP-OF-PAGE'
I_CALLBACK_HTML_TOP_OF_PAGE = 'TOP-OF-PAGE'
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
it_sort = it_sort
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
it_events = gt_events
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = it_main
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " display_alv
*& Form build_events
text
--> p1 text
<-- p2 text
FORM build_events .
DATA: is_event TYPE slis_alv_event.
break-point.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = gt_events[]
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE gt_events WITH KEY name = slis_ev_top_of_page INTO is_event.
IF sy-subrc = 0.
MOVE 'TOP_OF_PAGE' TO is_event-form.
MODIFY gt_events from is_event TRANSPORTING form WHERE name = slis_ev_top_of_page.
ENDIF.
ENDFORM. " build_events
*& Form top_of_page
text
--> p1 text
<-- p2 text
form top_of_page .
BREAK-POINT.
SKIP 3.
WRITE:/20 'BILLING DETAILS', 40 'PAYMENT DETAILS'.
endform. " top_of_page
Regards.
s.senthil kumarhi i modified ur program , check this and let me know
REPORT zsen_servicetax_gta NO STANDARD PAGE HEADING LINE-COUNT 100.
*****************************************TABLES USED**********************************************************************
TABLES: BSIS, "Accounting: Secondary Index for G/L Accounts
BSAS, "Accounting: Secondary Index for G/L Accounts (Cleared Items)
LFA1. "Vendor Master (General Section).
*****************************************WORK AREA / INTERNAL TABLE DECLARATION******************************************
TYPE-POOLS: slis.
TYPES: BEGIN OF ty_main,
hkont TYPE bsis-hkont,
belnr TYPE bsis-belnr,
budat TYPE bsis-budat,
blart TYPE bsis-blart,
dmbtr TYPE bsis-dmbtr,
xblnr TYPE bsis-xblnr,
shkzg TYPE bsis-shkzg,
augbl TYPE bsis-augbl,
kz_dmbtr TYPE bsis-dmbtr,
kz_xblnr TYPE bsis-xblnr,
kz_blart TYPE bsis-blart,
kz_belnr TYPE bsis-belnr,
kz_budat TYPE bsis-budat,
kz_zuonr TYPE bsis-zuonr,
name1 TYPE lfa1-name1,
slno TYPE i,
END OF ty_main,
BEGIN OF ty_bsas,
belnr TYPE bsas-hkont,
budat TYPE bsas-budat,
xblnr TYPE bsas-xblnr,
augbl TYPE bsas-augbl,
dmbtr TYPE bsas-dmbtr,
blart TYPE bsas-blart,
zuonr TYPE bsas-zuonr,
END OF ty_bsas.
DATA: it_main TYPE TABLE OF ty_main,
wa_main LIKE LINE OF it_main,
it_bsas TYPE TABLE OF ty_bsas,
wa_bsas LIKE LINE OF it_bsas.
DATA: it_sort TYPE slis_t_sortinfo_alv,
IT_fieldcatalog TYPE slis_t_fieldcat_alv ,
WA_fieldcatalog TYPE slis_fieldcat_alv,
gd_layout TYPE slis_layout_alv,
gt_events TYPE slis_t_event,
WA_EVENTS TYPE SLIS_T_EVENT,
int_fcat TYPE slis_fieldcat_alv,
it_header TYPE slis_t_listheader,
wa_header TYPE slis_listheader.
************************************************work variables***********************************************************************
DATA: ven_name TYPE lfa1-name1,
post_date TYPE bsis-budat,
t_tabix TYPE sy-tabix,
i_prg LIKE sy-repid.
***********************************************selection screen***********************************************************************
SELECTION-SCREEN: BEGIN OF BLOCK gtn WITH FRAME TITLE text-001 .
SELECT-OPTIONS: date FOR BSIS-BUDAT .
SELECTION-SCREEN: END OF BLOCK gtn.
************************************************data selection**************************************************************************
START-OF-SELECTION.
PERFORM data_retreval.
PERFORM build_catalog.
PERFORM layout.
PERFORM build_events.
PERFORM sortinfo.
IF it_main[] IS NOT INITIAL.
PERFORM display_alv.
ELSE.
MESSAGE 'No Records Matching For This Selection' TYPE 'E'.
ENDIF.
******************************data display*********************************************************************************************
**& Form data_retreval
*text
*--> p1 text
*<-- p2 text
FORM data_retreval .
CLEAR:it_main[], wa_main.
***********************************************selecting data from bsis table for the given date range**********************************
SELECT ahkont abelnr abudat ablart admbtr axblnr a~shkzg
b~augbl
INTO CORRESPONDING FIELDS OF TABLE it_main
FROM bsis AS a LEFT OUTER JOIN bsas AS b
ON abelnr = bbelnr
WHERE a~budat IN date.
*AND a~blart = 'KR'
*AND a~shkzg = 'S'
*AND a~hkont = '0002200530'.
***********************************************selecting data from bsas table using bsis-belnr*******************************************
LOOP AT it_main INTO wa_main.
SELECT belnr budat dmbtr xblnr zuonr augbl blart
INTO CORRESPONDING FIELDS OF wa_bsas
FROM bsas
WHERE belnr = wa_main-augbl
AND blart = 'KZ'.
ENDSELECT.
APPEND wa_bsas TO it_bsas.
ENDLOOP.
********************************************combining two tables data******************************************************************
LOOP AT it_main INTO wa_main.
t_tabix = sy-tabix.
wa_main-slno = t_tabix.
READ TABLE it_bsas INTO wa_bsas WITH KEY augbl = wa_main-augbl.
IF sy-subrc = 0.
SELECT SINGLE name1
FROM lfa1
INTO ven_name
WHERE lifnr = wa_bsas-zuonr.
wa_main-kz_dmbtr = wa_bsas-dmbtr.
wa_main-kz_belnr = wa_bsas-belnr.
wa_main-kz_blart = wa_bsas-blart.
wa_main-kz_budat = wa_bsas-budat.
wa_main-kz_xblnr = wa_bsas-xblnr.
wa_main-kz_zuonr = wa_bsas-zuonr.
wa_main-name1 = ven_name.
ENDIF.
MODIFY it_main FROM wa_main INDEX t_tabix TRANSPORTING kz_dmbtr kz_belnr kz_budat kz_blart kz_xblnr kz_zuonr name1 .
ENDLOOP.
SORT it_main BY kz_blart kz_zuonr.
LOOP AT it_main INTO wa_main.
wa_main-slno = sy-tabix.
MODIFY it_main FROM wa_main INDEX sy-tabix TRANSPORTING slno.
ENDLOOP.
ENDFORM. " data_retreval
**& Form build_catalog
*text
*--> p1 text
*<-- p2 text
FORM build_catalog .
DATA: col_pos TYPE i.
col_pos = col_pos + 1.
WA_fieldcatalog-fieldname = 'SLNO'.
WA_fieldcatalog-seltext_m = 'Serial No'.
WA_fieldcatalog-col_pos = col_pos.
APPEND WA_fieldcatalog TO IT_fieldcatalog.
CLEAR: WA_fieldcatalog.
col_pos = col_pos + 1.
WA_fieldcatalog-fieldname = 'KZ_ZUONR'.
WA_fieldcatalog-seltext_m = 'Vendor Num'.
WA_fieldcatalog-col_pos = col_pos.
APPEND WA_fieldcatalog TO IT_fieldcatalog.
CLEAR: WA_fieldcatalog.
col_pos = col_pos + 1.
WA_fieldcatalog-fieldname = 'NAME1'.
WA_fieldcatalog-seltext_m = 'Vendor Name'.
WA_fieldcatalog-col_pos = col_pos.
APPEND WA_fieldcatalog TO IT_fieldcatalog.
CLEAR: WA_fieldcatalog.
col_pos = col_pos + 1.
WA_fieldcatalog-fieldname = 'BLART'.
WA_fieldcatalog-seltext_m = 'BillDoc.Type'.
WA_fieldcatalog-col_pos = col_pos.
APPEND WA_fieldcatalog TO IT_fieldcatalog.
CLEAR: WA_fieldcatalog.
col_pos = col_pos + 1.
WA_fieldcatalog-fieldname = 'BELNR'.
WA_fieldcatalog-seltext_m = 'BillDoc.Num.'.
WA_fieldcatalog-col_pos = col_pos.
APPEND WA_fieldcatalog TO IT_fieldcatalog.
CLEAR: WA_fieldcatalog.
col_pos = col_pos + 1.
WA_fieldcatalog-fieldname = 'BUDAT'.
WA_fieldcatalog-seltext_m = 'BillPosting Date'.
WA_fieldcatalog-col_pos = col_pos.
APPEND WA_fieldcatalog TO IT_fieldcatalog.
CLEAR: WA_fieldcatalog.
col_pos = col_pos + 1.
WA_fieldcatalog-fieldname = 'XBLNR'.
WA_fieldcatalog-seltext_m = 'BillReference Num'.
WA_fieldcatalog-col_pos = col_pos.
APPEND WA_fieldcatalog TO IT_fieldcatalog.
CLEAR: WA_fieldcatalog.
col_pos = col_pos + 1.
WA_fieldcatalog-fieldname = 'DMBTR'.
WA_fieldcatalog-seltext_m = 'Bill Amount'.
WA_fieldcatalog-col_pos = col_pos.
WA_fieldcatalog-do_sum = 'X'.
APPEND WA_fieldcatalog TO IT_fieldcatalog.
CLEAR: WA_fieldcatalog.
col_pos = col_pos + 1.
WA_fieldcatalog-fieldname = 'KZ_BLART'.
WA_fieldcatalog-seltext_m = 'Pay_Doc.type'.
WA_fieldcatalog-col_pos = col_pos.
WA_fieldcatalog-do_sum = 'X'.
APPEND WA_fieldcatalog TO IT_fieldcatalog.
CLEAR: WA_fieldcatalog.
col_pos = col_pos + 1.
WA_fieldcatalog-fieldname = 'KZ_BELNR'.
WA_fieldcatalog-seltext_m = 'Pay_Document No'.
WA_fieldcatalog-col_pos = col_pos.
APPEND WA_fieldcatalog TO IT_fieldcatalog.
CLEAR: WA_fieldcatalog.
col_pos = col_pos + 1.
WA_fieldcatalog-fieldname = 'KZ_DMBTR'.
WA_fieldcatalog-seltext_m = 'Payment Amount'.
WA_fieldcatalog-col_pos = col_pos.
WA_fieldcatalog-do_sum = 'X'.
APPEND WA_fieldcatalog TO IT_fieldcatalog.
CLEAR: WA_fieldcatalog.
col_pos = col_pos + 1.
WA_fieldcatalog-fieldname = 'KZ_XBLNR'.
WA_fieldcatalog-seltext_m = 'Pay_Reference Num'.
WA_fieldcatalog-col_pos = col_pos.
APPEND WA_fieldcatalog TO IT_fieldcatalog.
CLEAR: WA_fieldcatalog.
col_pos = col_pos + 1.
WA_fieldcatalog-fieldname = 'KZ_BUDAT'.
WA_fieldcatalog-seltext_m = 'Pay_Posting Date'.
WA_fieldcatalog-col_pos = col_pos.
APPEND WA_fieldcatalog TO IT_fieldcatalog.
CLEAR: WA_fieldcatalog.
col_pos = col_pos + 1.
WA_fieldcatalog-fieldname = 'AUGBL'.
WA_fieldcatalog-seltext_m = 'Clr.Doc.Num'.
WA_fieldcatalog-col_pos = col_pos.
WA_fieldcatalog-row_pos = 2.
APPEND WA_fieldcatalog TO IT_fieldcatalog.
CLEAR: WA_fieldcatalog.
ENDFORM. " build_catalog
**& Form sortinfo
*text
*--> p1 text
*<-- p2 text
FORM sortinfo .
DATA: is_sort TYPE slis_sortinfo_alv.
CLEAR:is_sort.
is_sort-spos = 2.
is_sort-fieldname = 'KZ_ZUONR'.
is_sort-up = 'X'.
APPEND is_sort TO it_sort.
CLEAR: is_sort.
is_sort-spos = 1.
is_sort-fieldname = 'KZ_BLART'.
is_sort-up = 'X'.
is_sort-subtot = 'X'.
APPEND is_sort TO it_sort.
ENDFORM. " sortinfo
**& Form layout
*text
*--> p1 text
*<-- p2 text
FORM layout .
gd_layout-no_input = 'X'.
gd_layout-colwidth_optimize = 'X'.
gd_layout-zebra = 'X'.
*gd_layout-totals_text = 'Grand Total'.
*gd_layout-subtotals_text = 'BillBooked Not Paid'.
ENDFORM. " layout
**& Form display_alv
*text
*--> p1 text
*<-- p2 text
FORM display_alv .
i_prg = sy-repid.
DATA:it_events TYPE slis_t_event,
wa_events TYPE slis_alv_event.
WA_events-name = 'TOP_OF_PAGE'.
WA_events-form = 'TOP_OF_PAGE'.
APPEND wa_events TO it_events.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
*I_INTERFACE_CHECK = ' '
*I_BYPASSING_BUFFER = ' '
*I_BUFFER_ACTIVE = ' '
i_callback_program = 'I_PRG'
*I_CALLBACK_PF_STATUS_SET = ' '
*I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = 'TOP-OF-PAGE'
*I_CALLBACK_HTML_TOP_OF_PAGE = 'TOP-OF-PAGE'
*I_CALLBACK_HTML_END_OF_LIST = ' '
*I_STRUCTURE_NAME =
*I_BACKGROUND_ID = ' '
*I_GRID_TITLE =
*I_GRID_SETTINGS =
is_layout = gd_layout
it_fieldcat = IT_fieldcatalog[]
*IT_EXCLUDING =
*IT_SPECIAL_GROUPS =
*it_sort = it_sort
*IT_FILTER =
*IS_SEL_HIDE =
*I_DEFAULT = 'X'
*I_SAVE = ' '
*IS_VARIANT =
it_events = It_events.
*IT_EVENT_EXIT =
*IS_PRINT =
*IS_REPREP_ID =
*I_SCREEN_START_COLUMN = 0
*I_SCREEN_START_LINE = 0
*I_SCREEN_END_COLUMN = 0
*I_SCREEN_END_LINE = 0
*I_HTML_HEIGHT_TOP = 0
*I_HTML_HEIGHT_END = 0
*IT_ALV_GRAPHICS =
*IT_HYPERLINK =
*IT_ADD_FIELDCAT =
*IT_EXCEPT_QINFO =
*IR_SALV_FULLSCREEN_ADAPTER =
*IMPORTING
*E_EXIT_CAUSED_BY_CALLER =
*ES_EXIT_CAUSED_BY_USER =
*TABLES
*t_outtab = it_main
*EXCEPTIONS
*PROGRAM_ERROR = 1
*OTHERS = 2
*IF sy-subrc <> 0.
*MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
*ENDIF.
ENDFORM. " display_alv
**& Form build_events
*text
*--> p1 text
*<-- p2 text
FORM build_events .
DATA: is_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = gt_events[]
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2
IF sy-subrc NE 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE gt_events WITH KEY name = slis_ev_top_of_page INTO is_event.
IF sy-subrc = 0.
MOVE 'TOP_OF_PAGE' TO is_event-form.
MODIFY gt_events from is_event TRANSPORTING form WHERE name = slis_ev_top_of_page.
ENDIF.
ENDFORM. " build_events
**& Form top_of_page
*text
*--> p1 text
*<-- p2 text
form top_of_page .
SKIP 3.
WRITE:/20 'BILLING DETAILS', 40 'PAYMENT DETAILS'.
ENDFORM.
reward points if useful,
venkat. -
Top-of-page event is not triggered
Hi,
I have a problem with top-of-page event. I have a report that shows the results in ALV grid display. But I use "REUSE_ALV_GRID_DISPLAY" not OO alv and there is only one screen with number 1000. On the menu toolbar there is a button that prints the data of ALV in a list using "write" statement. While writing , "top of page" event is not triggered. I expect that it is triggered at the first "write" statement but isn't. Is there anyone who knows the cause of this problem?
The code is below.
Thanks.
Tables ...
TABLES : mara , makt , ekko , ekpo , zzith_yukh , lfa1 , t001w , lips ,
eket .
global variables
DATA : BEGIN OF list OCCURS 1,
zztahsk LIKE ekko-zztahsk ,
zterm LIKE ekko-zterm ,
txz01 LIKE ekpo-txz01 ,
name1 LIKE lfa1-name1 ,
menge LIKE ekpo-menge ,
meins LIKE ekpo-meins ,
fyukl LIKE zzith_yukh-zzdel_flag ,
" Yüklenmiş miktar var göstergesi ...
inco1 LIKE ekko-inco1 ,
netwr LIKE ekpo-netwr ,
waers LIKE ekko-waers ,
bedat LIKE ekko-bedat ,
zzontar LIKE ekko-zzontar ,
slfdt LIKE eket-slfdt ,
tname1 LIKE t001w-name1 ,
banfn LIKE ekpo-banfn ,
ebeln LIKE ekko-ebeln ,
ebelp LIKE ekpo-ebelp ,
lifnr LIKE ekko-lifnr ,
mtart LIKE mara-mtart ,
matkl LIKE mara-matkl ,
ekgrp LIKE ekko-ekgrp ,
matnr LIKE mara-matnr ,
eknam LIKE t024-eknam,
bukrs LIKE ekko-bukrs,
zzbltur LIKE ekko-zzbltur,
END OF list .
DATA temp LIKE list OCCURS 1 WITH HEADER LINE .
DATA total LIKE list OCCURS 1 WITH HEADER LINE .
ALV fields
TYPE-POOLS : slis.
DATA : gt_fields TYPE slis_fieldcat_alv OCCURS 1 WITH HEADER LINE .
DATA : gt_events TYPE slis_t_event.
DATA : gs_layout TYPE slis_layout_alv.
DATA : gv_title TYPE lvc_title VALUE 'Günlük Depo Sayım Miktarları'.
DATA : gt_top_of_page TYPE slis_t_listheader.
selection screen
SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-001 .
*Satınalma organizasyonu
*Satınalma grubu
*Satıcı
*Tarih
*SAS no
*Dosya no
SELECT-OPTIONS:
s_bukrs FOR ekko-bukrs .
SELECTION-SCREEN SKIP .
SELECT-OPTIONS:
s_ekorg FOR ekko-ekorg OBLIGATORY MEMORY ID eko ,
s_ekgrp FOR ekko-ekgrp ,
s_lifnr FOR ekko-lifnr ,
s_ebeln FOR ekko-ebeln .
SELECTION-SCREEN END OF BLOCK a .
Define Katalog
DEFINE fill_catalog .
gt_fields-fieldname = &1.
gt_fields-tabname = &2.
gt_fields-seltext_l = &3.
gt_fields-seltext_m = &3.
gt_fields-seltext_s = &3.
gt_fields-checkbox = &4.
gt_fields-cfieldname = &5.
gt_fields-ref_tabname = &6.
gt_fields-ref_fieldname = &7.
gt_fields-edit = &8.
append gt_fields .
clear gt_fields .
END-OF-DEFINITION.
Modify Catalog
DEFINE modify_catalog .
gt_fields-seltext_m = &1 .
modify gt_fields transporting seltext_m where fieldname = &2 .
END-OF-DEFINITION .
TOP-OF-PAGE.
write 'top of page'.
PERFORM top-of-page.
start-of-selection
START-OF-SELECTION .
PERFORM get_data.
PERFORM listele .
*& Form listele .
FORM listele .
PERFORM get_events .
PERFORM alv_list_header.
PERFORM get_field_catalog USING 'LIST' .
PERFORM display_alv .
ENDFORM. " listele.
*& Form getfield_Catalog
FORM get_field_catalog USING p_tabname .
fill_catalog :
'EBELN' 'LIST' '' '' '' 'EKPO' 'EBELN' '' ,
'ZZTAHSK' 'LIST' '' '' '' 'EKKO' 'ZZTAHSK' '' ,
'ZZBLTUR' 'LIST' '' '' '' 'EKKO' 'ZZBLTUR' '' ,
'MATNR' 'LIST' '' '' '' 'MARA' 'MATNR' '' ,
'MATKL' 'LIST' '' '' '' 'MARA' 'MATKL' '' ,
'TXZ01' 'LIST' '' '' '' 'EKPO' 'TXZ01' '' ,
'NAME1' 'LIST' '' '' '' 'LFA1' 'NAME1' '' ,
'MENGE' 'LIST' '' '' '' 'EKPO' 'MENGE' '' ,
'MEINS' 'LIST' '' '' '' 'EKPO' 'MENGE' '' ,
'FYUKL' 'LIST' '' '' '' 'ZZITH_YUKH' 'ZZDEL_FLAG' '' ,
'INCO1' 'LIST' '' '' '' 'EKKO' 'INCO1' '' ,
'NETWR' 'LIST' '' '' '' 'EKPO' 'NETWR' '' ,
'WAERS' 'LIST' '' '' '' 'EKKO' 'WAERS' '' ,
'BEDAT' 'LIST' '' '' '' 'EKKO' 'BEDAT' '' ,
'ZZONTAR' 'LIST' '' '' '' 'EKKO' 'ZZONTAR' '' ,
'SLFDT' 'LIST' '' '' '' 'EKET' 'SLFDT' '' ,
'TNAME1' 'LIST' '' '' '' 'T001W' 'NAME1' '' ,
'BANFN' 'LIST' '' '' '' 'EKPO' 'BANFN' '' ,
'EKNAM' 'LIST' '' '' '' 'T024' 'EKNAM' '' .
gt_fields-ddictxt = 'M' .
MODIFY gt_fields TRANSPORTING ddictxt WHERE fieldname NE space.
modify_catalog 'Yükleme No' 'VBELN' .
modify_catalog 'Malzeme Türü' 'ZZBLTUR' .
modify_catalog 'Malzeme Tanımı' 'TXZ01' .
modify_catalog 'Satıcı' 'NAME1' .
modify_catalog 'Teslim Şekli' 'INCO1' .
modify_catalog 'Döviz Tutarı' 'ZZTOPLAM'.
modify_catalog 'Döviz Kodu' 'WAERS' .
modify_catalog 'Siparişi Veren' 'TNAME1' .
modify_catalog 'Tahmini İthalat Trh.' 'SLFDT' .
modify_catalog 'İthalata İntikal Trh.' 'BEDAT' .
modify_catalog 'Dosya Onay Tarihi' 'ZZONTAR' .
modify_catalog 'Talep No' 'BANFN' .
modify_catalog 'Dosya Sorumlusu' 'EKNAM' .
modify_catalog 'Yük.Göstergesi' 'FYUKL' .
ENDFORM. " getfield_Catalog
*& Form display_alv
text
--> p1 text
<-- p2 text
FORM display_alv .
DATA lv_repid LIKE sy-repid .
lv_repid = sy-repid .
CLEAR gs_layout.
gs_layout-zebra = 'X'.
gs_layout-colwidth_optimize = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = lv_repid
i_callback_pf_status_set = 'SET_PF_STATUS'
i_callback_user_command = 'USER_COMMAND'
is_layout = gs_layout
it_fieldcat = gt_fields[]
it_events = gt_events[]
TABLES
t_outtab = list[].
ENDFORM. " display_alv
FORM set_pf_status USING iv_nodisplay TYPE slis_t_extab.
SET PF-STATUS 'STANDARD' ."excluding iv_nodisplay.
ENDFORM. " SET_PF_STATUS
FORM user_command USING iv_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE iv_ucomm .
WHEN 'PRINT' . PERFORM print_data .
ENDCASE .
ENDFORM. "USER_COMMAND
FORM get_events .
DATA: ls_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = gt_events.
READ TABLE gt_events WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE 'ALV_TOP_OF_PAGE' TO ls_event-form.
APPEND ls_event TO gt_events.
ENDIF.
ENDFORM. " getevents
FORM alv_list_header .
DATA: ls_line TYPE slis_listheader.
CLEAR ls_line.
ls_line-typ = 'S'.
ls_line-key = 'Satınalma Org.:'.
CONCATENATE s_ekorg-low s_ekorg-high
INTO ls_line-info SEPARATED BY '/'.
APPEND ls_line TO gt_top_of_page.
ls_line-key = 'Satınalma Grubu.:'.
CONCATENATE s_ekgrp-low s_ekgrp-high
INTO ls_line-info SEPARATED BY '/'.
APPEND ls_line TO gt_top_of_page.
ls_line-key = 'Satıcı.:'.
CONCATENATE s_lifnr-low s_lifnr-high
INTO ls_line-info SEPARATED BY '/'.
APPEND ls_line TO gt_top_of_page.
ls_line-key = 'SAS No.:'.
CONCATENATE s_ebeln-low s_ebeln-high
INTO ls_line-info SEPARATED BY '/'.
APPEND ls_line TO gt_top_of_page.
ENDFORM. " alv_list_header
FORM alv_top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = gt_top_of_page.
ENDFORM. "TOP_OF_PAGE
FORM get_data .
DATA : BEGIN OF tr ,
menge LIKE eket-menge ,
dabmg LIKE eket-dabmg ,
END OF tr ,
zzfiilytar LIKE zzith_yukh-zzfiilytar .
*- Get data ...
SELECT *
INTO CORRESPONDING FIELDS OF TABLE list
FROM ekpo AS a
INNER JOIN ekko AS b ON bebeln = aebeln
WHERE b~ebeln IN s_ebeln AND
b~bukrs IN s_bukrs AND
b~loekz EQ space AND
b~lifnr IN s_lifnr AND
b~ekorg IN s_ekorg AND
b~ekgrp IN s_ekgrp AND
a~loekz EQ space AND
a~elikz EQ space .
LOOP AT list .
CLEAR tr .
SELECT menge dabmg
INTO tr
FROM eket
WHERE ebeln = list-ebeln AND
ebelp = list-ebelp.
tr-menge = tr-menge - tr-dabmg .
ENDSELECT.
IF tr-menge LE 0 .
DELETE list .
ELSE .
list-menge = tr-menge .
IF tr-dabmg GT 0 .
list-fyukl = '*' .
ENDIF .
SELECT SINGLE butxt INTO list-tname1 FROM t001
WHERE bukrs = list-bukrs .
SELECT SINGLE slfdt INTO list-slfdt FROM eket
WHERE ebeln = list-ebeln AND
ebelp = list-ebelp .
SELECT SINGLE name1 INTO list-name1 FROM lfa1 WHERE lifnr = list-lifnr.
SELECT SINGLE mtart matkl INTO (list-mtart,list-matkl)
FROM mara WHERE matnr = list-matnr .
SELECT SINGLE eknam INTO list-eknam FROM t024 WHERE ekgrp = list-ekgrp .
MODIFY list .
ENDIF .
ENDLOOP .
ENDFORM. " get_data
FORM print_data .
LEAVE TO LIST-PROCESSING .
NEW-PAGE NO-HEADING NO-TITLE LINE-SIZE 229 .
SET PF-STATUS SPACE .
PERFORM top-of-page .
malzeme türü 1005 ler yazdırılır
PERFORM yazdir_1005 .
malzeme türü 1005 olmayanlar yazdırılır
PERFORM yazdir_ne_1005 .
Satınalama grupları bilgisi yazdırılır
PERFORM yazdir_ekgrp .
ENDFORM. " print_data
FORM top-of-page .
WRITE : 'ÜLKER GRUBU KONSOLİDE' .
WRITE AT 40 'Sevkiyat Bekleyen Malzemeler' COLOR COL_HEADING .
WRITE : 180 sy-uname , sy-datum , sy-uzeit.
NEW-LINE .
ULINE 0(229) .
WRITE :/2 'Rapor Kodu..............:' , (10) sy-tcode .
WRITE :/2 'Satınalma Organizasyonu.:' , (10) s_ekorg-low, '/', (10) s_ekorg-high .
WRITE :/2 'Satınalma Grubu.........:' , (10) s_ekgrp-low, '/', (10) s_ekgrp-high .
WRITE :/2 'Satıcı..................:' , (10) s_lifnr-low, '/', (10) s_lifnr-high .
WRITE :/2 'Satınalma Sipariş No....:' , (10) s_ebeln-low, '/', (10) s_ebeln-high .
NEW-LINE .
ULINE 0(229) .
Başlıklar yazılır
FORMAT COLOR COL_HEADING .
WRITE :
/(10) 'SAS NO.' CENTERED,
(6) 'TAHSİS' CENTERED,
(5) 'ÖDEME' CENTERED,
(5) 'Bel.T' CENTERED,
(25) 'MALZEME' CENTERED,
(25) 'SATICI' CENTERED,
(12) 'MİKTAR' CENTERED,
(3) 'BRM' CENTERED,
(3) 'G' ,
(7) 'TES.ŞK.' CENTERED,
(16) 'DÖVİZ TUTARI' CENTERED,
(3) 'DB.' CENTERED,
(13) 'İTH.İNTK.TRH.' CENTERED,
(13) 'DOSYA ON.TRH.' CENTERED,
(10) 'TAHMİN.İTH.TRH.' CENTERED,
(20) 'SİPARİŞ VEREN' CENTERED,
(10) 'TALEP NO.' CENTERED,
(18) 'DOSYA SORUMLUSU' CENTERED.
ULINE 0(229) .
FORMAT RESET .
ENDFORM. " top-of-page
FORM yazdir_1005 .
DATA ebeln LIKE list-ebeln .
SORT list BY zzbltur matnr .
temp[] = list[] .
DELETE temp WHERE mtart <> '1005' .
LOOP AT list WHERE mtart = '1005' .
CLEAR list-netwr .
IF ebeln NE list-ebeln OR ebeln EQ space .
REFRESH total . CLEAR total .
ebeln = list-ebeln .
LOOP AT temp WHERE ebeln = list-ebeln .
list-netwr = list-netwr + temp-netwr .
CLEAR total .
total-txz01 = '*** TKNK.MLZ. TOPLAMI ****' .
total-meins = temp-meins .
total-menge = temp-menge .
COLLECT total .
ENDLOOP .
PERFORM write_list USING '1' .
LOOP AT total .
PERFORM write_list USING '2' .
ENDLOOP .
AT END OF zzbltur .
ULINE 0(229) .
ENDAT .
ENDIF .
ENDLOOP .
ENDFORM. " yazdir_1005
FORM write_list USING flag .
flag 1 1005 için yazdırma
flag 2 ise ara toplam
IF flag = '1' .
FORMAT COLOR COL_NORMAL .
WRITE :
/(10) list-ebeln ,
(6) list-zztahsk,
(5) list-zterm,
(5) list-zzbltur ,
(25) list-txz01,
(25) list-name1,
(12) list-menge,
(3) list-meins,
(3) list-fyukl,
(7) list-inco1,
(16) list-netwr,
(3) list-waers,
(13) list-bedat,
(13) list-zzontar,
(10) list-slfdt ,
(20) list-tname1,
(10) list-banfn ,
(18) list-eknam .
FORMAT RESET .
ELSEIF flag = '2' .
FORMAT COLOR COL_TOTAL .
WRITE :
/(10) '' ,
(6) '' ,
(5) '' ,
(5) '' ,
(25) total-txz01,
(25) '' ,
(12) total-menge,
(3) total-meins,
(3) '' ,
(7) '' ,
(16) '' ,
(3) '' ,
(13) '' ,
(13) '' ,
(10) '' ,
(20) '' ,
(10) '' ,
(18) '' .
FORMAT RESET .
ELSEIF flag = '3' .
FORMAT COLOR COL_TOTAL .
WRITE :
/(10) '' ,
(6) '' ,
(5) '' ,
(5) '' ,
(25) total-txz01,
(25) '' ,
(12) total-menge,
(3) '' ,
(3) '' ,
(7) '' ,
(16) total-netwr ,
(3) '' ,
(13) '' ,
(13) '' ,
(10) '' ,
(20) '' ,
(10) '' ,
(18) '' .
FORMAT RESET .
ENDIF .
ENDFORM. " write_list
FORM yazdir_ne_1005 .
DATA matnr LIKE list-matnr .
SORT list BY zzbltur matkl matnr .
temp[] = list[] .
DELETE temp WHERE mtart = '1005' .
LOOP AT list WHERE mtart <> '1005' .
Her yeni Malzeme için ara toplam yazılır
IF matnr NE list-matnr AND matnr NE space .
REFRESH total . CLEAR total .
Toplamlar alınır
LOOP AT temp WHERE matnr = matnr .
CLEAR total .
total-netwr = temp-netwr .
total-menge = temp-menge .
total-txz01 = '*** TOPLAM ****' .
COLLECT total .
ENDLOOP .
LOOP AT total . .
PERFORM write_list USING '3' .
ENDLOOP .
ULINE 0(229) .
ENDIF .
PERFORM write_list USING '1' .
matnr = list-matnr .
ENDLOOP .
Toplamlar alınır
LOOP AT temp WHERE matnr = matnr .
REFRESH total . CLEAR total .
total-netwr = temp-netwr .
total-menge = temp-menge .
total-txz01 = '*** TOPLAM ****' .
COLLECT total .
ENDLOOP .
LOOP AT total .
PERFORM write_list USING '3' .
ENDLOOP .
ULINE 0(229) .
ENDFORM. " yazdir_ne_1005
FORM yazdir_ekgrp .
DATA: BEGIN OF total OCCURS 1 ,
eknam LIKE list-eknam ,
zzbltur LIKE list-zzbltur ,
sayi TYPE i ,
END OF total .
DATA: BEGIN OF gtotal OCCURS 1 ,
eknam LIKE list-eknam ,
zzbltur LIKE list-zzbltur ,
sayi TYPE i ,
END OF gtotal .
DATA: bltur LIKE zzith_bltur OCCURS 1 WITH HEADER LINE .
DATA: len TYPE i .
DATA: wa LIKE total.
REFRESH temp .
SELECT * INTO TABLE bltur FROM zzith_bltur .
CLEAR bltur .
MOVE : 'ZZZZ' TO bltur-zzbltur , " Satır toplamı için ...
text-002 TO bltur-zztanim .
APPEND bltur .
CLEAR list .
SORT list BY eknam ebeln .
DELETE ADJACENT DUPLICATES FROM list COMPARING eknam ebeln .
LOOP AT list .
CLEAR : total, gtotal .
total-eknam = list-eknam .
total-zzbltur = list-zzbltur .
total-sayi = 1 .
COLLECT total .
total-eknam = list-eknam .
total-zzbltur = 'ZZZZ' .
total-sayi = 1 .
COLLECT total .
gtotal-eknam = text-001 .
gtotal-zzbltur = list-zzbltur .
gtotal-sayi = 1 .
COLLECT gtotal .
gtotal-eknam = text-001 .
gtotal-zzbltur = 'ZZZZ' .
gtotal-sayi = 1 .
COLLECT gtotal .
ENDLOOP .
FORMAT COLOR COL_HEADING.
ULINE AT /1(145).
WRITE :/
sy-vline , (15) 'Dosya Sorumlusu' , sy-vline .
LOOP AT bltur .
WRITE :(15) bltur-zztanim , sy-vline .
ENDLOOP .
ULINE AT /1(145).
FORMAT RESET .
total-zzbltur = '0001' .
MODIFY total TRANSPORTING zzbltur WHERE zzbltur = space .
gtotal-zzbltur = '0001' .
MODIFY gtotal TRANSPORTING zzbltur WHERE zzbltur = space .
SORT total BY eknam .
LOOP AT total .
AT NEW eknam .
WRITE :/
sy-vline , (15) total-eknam COLOR COL_HEADING ,
sy-vline .
LOOP AT bltur .
len = sy-tabix * 18 .
len = len + 3 .
CLEAR wa .
READ TABLE total INTO wa WITH KEY zzbltur = bltur-zzbltur
eknam = total-eknam .
WRITE AT len(15) wa-sayi NO-ZERO.
WRITE sy-vline .
ENDLOOP .
ENDAT .
ENDLOOP .
LOOP AT gtotal .
AT NEW eknam .
FORMAT COLOR COL_TOTAL .
WRITE :/
sy-vline , (15) gtotal-eknam ,
sy-vline .
LOOP AT bltur .
len = sy-tabix * 18 .
len = len + 3 .
CLEAR wa .
READ TABLE gtotal INTO wa WITH KEY zzbltur = bltur-zzbltur
eknam = text-001 .
WRITE AT len(15) wa-sayi NO-ZERO.
WRITE sy-vline .
ENDLOOP .
ENDAT .
ENDLOOP .
ULINE AT /1(145).
FORMAT RESET .
ENDFORM. " yazdir_ekgrpHi,
In the function use the top-of-page event as follows:
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
I_INTERFACE_CHECK = ' '
I_CALLBACK_PROGRAM = 'ZRPMSLM'
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
<b> I_CALLBACK_TOP_OF_PAGE = 'TOP'</b>
Define whatever to appear in top-of page in a subroutine named TOP.
Hope this helps.
Reward if helpful.
Regards,
Sipra -
Triggering Validation in a Region Through a Contextual Event
I am using JDeveloper 11.1.1.6.0.
I am trying to find out how to trigger the built in validation that occurs normally when a "submit" action occurs, but have the submit action occur outside of a region, and the validation also occur in the region itself.
I have a page that contains a dynamic region in it. I will refer to the containing page as the parent and the region as the child. The parent region and child region both have different business objects bound to them, though they are part of the same application module. The parent page contains a submit button that needs commit the user entered data in both the parent and child pages. This action must not proceed if there are any validation errors in the parent or the child. The validation should trigger on the parent page without any work from me because of how ADF handles the situation. The child page is notified of the submit action via contextual events. I currently have it where this event can trigger the "commit" action successfully, but I have no idea how to go about ensuring that it triggers a validation check as well.
The overall flow that I think will happen in the final version is likely:
1: submit button pressed.
2: parent page validation is checked (if success, proceed)
3: contextual event is fired
4: contextual event is received by the child.
5: the child triggers its own validation (if success, proceed, else stop)
6: the child triggers a commit action
7: the child sends a response contextual event (signalling that it was successful)
8: the parent receives the response contextual event
9: the parent performs a "commit" action.
I do not know how to cause step 5 to occur, and I do not know if steps 7 through 9 are needed yet (I haven't tested to see if causing the commit in either the parent or the child ends up causing all modified entity objects to be committed). Any help would be greatly appreciated.
Thank youHi,
you can access a command button on the page fragment and queue its action event. For this you access a managed bean (backingBean Scope) that contains a handler to the command button and queue the event (this then will perform validation as if the user clicked it. The command button can also be hidden on the fragment.
Have a look here for how you can integrate the managed bean as the contextual event handler
http://www.oracle.com/technetwork/developer-tools/adf/learnmore/regionpayloadcallbackpattern-1865094.pdf
Frank -
Event Handler is not being triggered- 11G Release2
Hi all,
I developed a postprocess event handler which I am expecting to be triggered when my custom task for trusted reconciliation run. I have deployed my event handler using plugin registration utility. I put a static block in my class to see if my class iz being initialized. I see that iti is initialized but event handler is never triggered (execute method is never called). Why it is not triggered? Any help is strongly appreciated... Below is my configuration for the event handler..
<?xml version='1.0' encoding='utf-8'?>
<eventhandlers xmlns="http://www.oracle.com/schema/oim/platform/kernel"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.oracle.com/schema/oim/platform/kernel/orchestration-handlers.xsd">
<action-handler class="com.tcmb.iam.plugin.eventhandler.PostProcessEventHandler"
entity-type="User"
operation="ANY"
name="PostProcessEventHandler"
stage="postprocess" order="1002"
sync="TRUE"/>
</eventhandlers>
<?xml version="1.0" encoding="UTF-8"?>
<oimplugins xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<plugins pluginpoint="oracle.iam.platform.kernel.spi.EventHandler">
<plugin pluginclass=
"com.tcmb.iam.plugin.eventhandler.PostProcessEventHandler"
version="1.0"
name="PostProcessEventHandler">
</plugin>
</plugins>
</oimplugins>
Tahnaks in advance,
BR
ALİYEHi Nayan,
I have cheked the plugins table and my plugin is in there.Thenchecked mds_paths table I have four records there (I have deployed and undeployed few times) wich are as follow:
path element name
http://www.oracle.com/schema/oim/platform/kernel action-handler
http://www.oracle.com/schema/oim/platform/kernel action-handler
http://xmlns.oracle.com/schema/oim/platform/kernel eventhandlers
http://www.oracle.com/schema/oim/platform/kernel eventhandlers
Which schema is corrent? Is there something wrong with these records that causes my handler to do not trigger ?
Thanks a lot
BR
Aliye -
Event from Change document not triggerring
Hi
I've used chnage document FMRESERV to track change in table KBLP-DELTAWTAPP for any value change, but although I'm chnaging amount from FMX2, the event for this chanhe document is not triggerring. Can you please help me how to resolv the issue.Further, check if the change pointers are activated in transaction BD61 and if the pointers are maintained in transaction BD52. If these are maintained correctly along with the flag in the data element, the change pointers should be triggered.
Does this help? -
Contextual Event on row selection in the table
Hi,
My taskflow has just a view activity which queries a view object and displays results as a table. This taskflow is inserted in the main page as a region. I have set up a selection listener on the table, to map to a method in a managed bean. I have made this method binding a producer of my contextual event. and another method binding on the main page as a consumer. I have mapped producer and the consumer on a event map on the main page.
My problem is when a row is selected in the table, I see the method (in the selection listener) is called but the event is not fired and the consumer method is not called. I don't know, if it is because the producer method (selection listener) takes SelectionEvent as a parameter?.
I added just to test, a button on my view activity and mapped the action listener to another method(with out parameters) on the same managed bean and made this a producer. In this situation the event got fired and the consumer method got called.
Why is the selection listener method not firing the event?
Thanks in advance.Hi,
the two events that are supported for ADF Faces component events are ActionEvent and ValueChangeEvent. So if you have a selection event, you need to take this infromation and create an ActionEvent from it.
http://java.sun.com/javaee/javaserverfaces/1.2/docs/api/javax/faces/event/ActionEvent.html
Frank -
Contextual Event - "Currency Change Event" not raised?
Hey,
I am trying to raise contextual event on a table when I click on a row. The event type for a table is eventType="Currency Change Event" But is not working.
Here is the event in the PageDef file.
<events xmlns="http://xmlns.oracle.com/adfm/contextualEvent">
<event name="paramValueChangedEvent"
customPayLoad="${bindings.PolicyId.inputValue}"
eventType="Currency Change Event"/>
</events>
After that I want to raise custom method:
<methodAction id="testEvent" InstanceName="myBean.dataProvider"
DataControl="myBean" RequiresUpdateModel="true"
Action="invokeMethod" MethodName="testEvent"
IsViewObjectMethod="false"/>
Here is the event map:
<eventMap xmlns="http://xmlns.oracle.com/adfm/contextualEvent">
<event name="paramValueChangedEvent">
<producer region="*">
<consumer region="" handler="testEvent" handleCondition=""/>
</producer>
</event>
</eventMap>
When I raise the event programmatically, then the event is raised and my function is called.
Here is the code. I call this function on a custom selection listener of the table.
public void riseCurrencyChangeEvent(String treeID, String nodeID,
String attributeValuedPassedName) {
DCBindingContainer bc = ADFFacesUtils.getDCBindingContainer();
FacesCtrlHierBinding tbl =
(FacesCtrlHierBinding)bc.findCtrlBinding(treeID);
FacesCtrlHierNodeBinding node =
(FacesCtrlHierNodeBinding)bc.findCtrlBinding(nodeID);
EventDispatcher dispatcher = bc.getEventDispatcher();
node = (FacesCtrlHierNodeBinding)tbl.getRootNodeBinding();
dispatcher.queueEvent(node.getEventProducer(),
node.getCurrentRow().getAttribute(attributeValuedPassedName));
bc.getEventDispatcher().processContextualEvents();
My idea is not to call custom method after clicking on a table row, but I want to raise declaratively the event because I will need so generics.Hi,
there is a bug 10045872 filed for this. The bug is scheduled for fixing in PS4 (11.1.1.5) I'll work on a manual - though code centric - alternative for the time being and publish it on ADF Code Corner when done.
Frank -
Asynchronous Business Object Event not triggering Workflow
Hello everybody,
I created a workflow for processing of inbound messages (IDoc). The workflow is correctly started when an IDoc arrives. Then it prepares some data and runs into a waiting step. After the user processes the messages via a custom transaction, the workflow should proceed and send some additional information to the message origin.
I created a new BO with an event ProcessComplete, which is called in the custom transaction via the following code:
INCLUDE <cntn01>.
DATA lo_zisu TYPE swc_object.
swc_container lo_container.
swc_create_container lo_container.
swc_set_element lo_container 'VAR1' lv_var.
swc_create_object lo_zisu 'ZABC' lv_object_key.
swc_raise_event lo_zisu 'ProcessComplete' lo_container.
But when I call this code, the workflow does not continue. When I use SWEL to manually create an event on this object, the workflow only continues when I set the check box "synchronous call". So in some way, the asychronous calls disappears completely.
Can anyone give me a hint, where to look for these calls? May there be a setting not active on the system for this particular workflow? Other workflows with the same method of event handling work well.
Thanks and regards,
ChristophHello,
I debugged deeper into the whole issue. When I call the function module for the event creation directly (not via the macro posted in my initial post), I have the option to control syncronous va. asynchronous processing:
CALL FUNCTION 'SWE_EVENT_CREATE'
EXPORTING
objtype = 'ZISU_MDC'
objkey = lv_objkey
event = 'ProcessComplete'
start_recfb_synchron = 'X'
IMPORTING
receiver_count = lv_rcvcnt
event_id = lv_evtid
TABLES
event_container = lo_container
EXCEPTIONS
objtype_not_found = 1
OTHERS = 2.
The export parameter start_recfb_synchron controls this. In the program flow, the following is the difference between the two ways:
Synchronous:
CALL FUNCTION im_handler->m_linkage-recfb
DESTINATION im_handler->m_linkage-rfcdest
EXPORTING
sender = l_sibf_object_por
event = l_sibf_event
rectype = l_sibf_rectype
handler = l_receiver_por
exceptions_allowed = 'X'
xml_size = l_xml_size
event_container = lt_xml_container
IMPORTING
result = l_result
EXCEPTIONS
temp_error = 1
OTHERS = 99.
Asynchronous:
CALL FUNCTION im_handler->m_linkage-recfb
IN BACKGROUND TASK
AS SEPARATE UNIT
DESTINATION im_handler->m_linkage-rfcdest
EXPORTING
sender = l_sibf_object_por
event = l_sibf_event
rectype = l_sibf_rectype
handler = l_receiver_por
exceptions_allowed = ' '
xml_size = l_xml_size
event_container = lt_xml_container
CALL FUNCTION 'ID_OF_BACKGROUNDTASK'
IMPORTING
tid = l_trfc_id.
The first one works fine, the event gets processed, there is an entry in SWEL, the workflow continues. The second way does not work. The second function returns a tRFC ID, but when locking tRFC in the debugger and search for the call via SM58, there is no entry.
In parallel I opened an OSS message, but did not get any (useful) response yet.
Regards,
Christoph -
BSP Terminating event not triggering
Hello Friends,
We have a scenario, where a BSP application is triggered from a Workflow, for a certain approval, and after the user clicks on Approve button on the BSP Page, the BSP would write to the workflow container using SAP_WAPI_WRITE_CONTAINER and then we call SWF_WSC_CALLBACK_LAUNCH.
This used to work, but after an almost Fatal incident with our system, we are not able to get this to work.
We can see in the workflow log that the container is written, but the terminating event is not triggered, and the workflow doesn't move forward
Is there a setting that we're missing..??
Thanks,
Tat.Have you tried:
call function 'SAP_WAPI_DECISION_COMPLETE'
Maybe you are looking for
-
Finder in column view has no expander divider on the last column
I deal with a lot of graphics on my computer and I have a lot of subfolders. While in finder in column view there is no expanding divider for the last column when it is showing a graphic. When I first open a photo or graphic in finder the last column
-
Horizontal Scroll bar in a list Box?
Hi, I have a requirement in Adobe Designer where my List Box should also show Horizontal Scroll bar in it. Is it possible? Thanks.
-
In list view: Why don't searches include results from the Collections field? Why won't the Collections column sort properly?
-
I just tried to copy text from power point to a word document. Since then the word document is frozen an shows no reaction. Also can not restart word. Can anyone help me to unfreeze or recover the word document?
-
Mapping Java Types to XML Types
Hi, I have a small doubt in web services, 1) how a java data type can match with xml data type in wsdl, 2) how and where the java program can find the matching java data type to xml data type and vice versa 3) whether any mechanism is availabl