ADF : Value change listener for the whole jsff page
Is there any feature to have a value change listener for the whole jsff page ?
How to know if user has change something in the page i.e. how to know whether the page is dirty ?
User please tell us your jdev version!
Read this blog https://blogs.oracle.com/groundside/entry/ever_wondered_how_uncommitteddatawarning_works
Timo
Similar Messages
-
Problem in getting the current value of the drop down while calling value change listener
I have 2 drop down list. I am trying to get the value of first drop down from other drop downs value change listener. Initially one drop down contains a default value. First time I got the value while calling the value change listener. But if I change the default value to other in the first drop down and call the value change listener of the second drop down then I got the old value in the bean. Can anyone suggest a process
If I use the following code it gives me the current index.
valueChangeEvent.getComponent().processUpdates(FacesContext.getCurrentInstance());
System.out.println(valueChangeEvent.getNewValue());
This is also giving me current index.
BindingContainer container = BindingContext.getCurrent().getCurrentBindingsEntry();
AttributeBinding attrIdBinding = (AttributeBinding)container.getControlBinding("PersonTypeId1");
if(attrIdBinding.getInputValue()!=null)
System.out.println(attrIdBinding.getInputValue().toString());
But at last I got some help from Shay Shmeltzer's Weblog.
BindingContainer bindings =
BindingContext.getCurrent().getCurrentBindingsEntry();
// Get the sepecific list binding
JUCtrlListBinding listBinding =
(JUCtrlListBinding)bindings.get("PersonTypeId1");
// Get the value which is currently selected
Object selectedValue = listBinding.getSelectedValue();
long value =0L;
if(selectedValue!=null){
System.out.println("Sudip.. Person Type using bindings"+selectedValue.toString());
But this returns "ViewRow [oracle.jbo.Key[300000860721156 ]]"
300000860721156 is the original value.. Would you please help me to figure it. -
Changing a color for the whole Application
Hi,
Is there a way to change the color, default purple of swing to some other color(say green) for the whole application without using themes? Is it possible through UIManager.put()?
Regards
SridharThanks Michael,
I just modified your code to fit my needs.
import java.awt.*;
import javax.swing.*;
import java.util.Enumeration;
class ApplicationColor
public ApplicationColor()
setApplicationColor(new Color(88, 140, 165));
JFrame frame = new JFrame();
frame.setLocation(400,300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel jp = new JPanel(new BorderLayout());
String[] temp = {"abc","123"};
JComboBox cbo = new JComboBox(temp);
JButton btn = new JButton("I'm a button");
jp.add(new JLabel("I'm a label"),BorderLayout.NORTH);
jp.add(cbo,BorderLayout.CENTER);
jp.add(btn,BorderLayout.SOUTH);
frame.getContentPane().add(jp);
frame.pack();
frame.setVisible(true);
public void setApplicationColor(Color color)
Enumeration enum = UIManager.getDefaults().keys();
while(enum.hasMoreElements())
Object key = enum.nextElement();
Object value = UIManager.get(key);
Color jfcBlue = new Color(204, 204, 255);
Color jfcBlue1 = new Color(153, 153, 204);
if (value instanceof Color)
if(value.equals(jfcBlue) || value.equals(jfcBlue1)){
UIManager.put(key, color);
public static void main(String[] args){new ApplicationColor();}
}Sridhar -
Copy the values input in input text 1 to input text 2 using value change listener
Hello ,
I have two input texts :
input text 1 & input text 2 .
I need to copy the values input in input text 1 to input text 2 .
How do I implement this using value change listener ?
I did the following steps :
1) I selected input text 1 and chose Value Change listener --> edit .
Typed a new bean & class name .
Which method name should I add ?
Any help please ?Hi,
Give any name to the method and bind the two input text to manged bean using bindings attribute of InputText. just follow the below given code
Ex:
test.java class
private RichInputText inputVal1;
private RichInputText inputVal2;
public Test() {
public void ValChange(ValueChangeEvent valueChangeEvent) {
// Add event code here...
inputVal2.setValue(inputVal1.getValue().toString());
public void setInputVal1(RichInputText inputVal1) {
this.inputVal1 = inputVal1;
public RichInputText getInputVal1() {
return inputVal1;
public void setInputVal2(RichInputText inputVal2) {
this.inputVal2 = inputVal2;
public RichInputText getInputVal2() {
return inputVal2;
test.jspx page
<af:inputText label="Label 1" id="it1" valueChangeListener="#{backingBeanScope.TestBean.ValChange}"
binding="#{backingBeanScope.TestBean.inputVal1}" autoSubmit="true"/>
<af:inputText label="Label 2" id="it2" binding="#{backingBeanScope.TestBean.inputVal2}"
partialTriggers="it1"/>
Thanks
nitesh -
Differentiating HTTP Request through a URL and a value change listener
Version Details:
Oracle JDeveloper 11g Release 1 11.1.1.4.0
Studio Edition Version 11.1.1.4.0
Build JDEVADF_11.1.1.4.0_GENERIC_101227.1736.5923
IDE Version: 11.1.1.4.37.59.23
Product ID: oracle.jdeveloper
Product Version: 11.1.1.4.37.59.23
ADF Business Components 11.1.1.59.23
Java(TM) Platform 1.6.0_21
Oracle IDE 11.1.1.4.37.59.23
Versioning Support 11.1.1.4.37.59.23
Base Details:
The Product, that a different team is working on (<i><b>which I cannot access, code, touch,...</b></i>), creates reports and essentially generates a URL with a bunch of parameters:
http://<host>:<port>/myApplication/main.jspx?parameter1=value1¶meter2=value2...When the user clicks on an "Edit" button, a modal popup window is displayed (using jQuery) with an embedded iFrame with its source pointing to the above URL.
The "myApplication" is an ADF application which brings up an ADF form based on the parameters. Once the user enters the data, validations occur and the data is written into a total of 3 different Tables in the Database. Once the operation is finished, the user closes the popup by clicking on the "X" button of the popup window, which essentially does "popup.*hide()*".
Limitations:
<li>Since there are varied combination of parameter values and associated ADF forms, taskflows is not* an option.
<li>Since the logic of generating the ADF form is not straightforward, ADF BC is not* an option.
<li>Since validations are based on the value change listeners, the managed bean has to be a session scope_ bean.
Problem:
When, for the first time, the user clicks on the Edit button with a particular set of parameter values, the corresponding ADF form is displayed and things work normal. Since the managed bean is under session scope, the form generated for the first popup window stays the same for any subsequent popup windows, even when the URL and its parameters are completely different. As I can not listen to the popup close event, I cannot invalidate my session either.
I tried using filters in the web.xml to grab the request and apply the business logic. Due to the presence of multiple value change listeners (too many <tt>autosubmit=true</tt>), every value change listener triggers a request and so the business logic gets applied with every value change.
After some tests, I deduced that the difference between the call from iFrame and the call from value change is the HTTP Request Method - GET for iFrame and POST for value change listener. So in my filter I apply the business logic when there is a GET request and not apply when its a POST request.
Turns out, that is not a valid enough differentiation between the two requests being made. Sometimes, even the value change listeners are issuing a GET request.
Question:
*<font color="red">1</font>*. Is there a way to force the value change listeners to always trigger a POST request?
*<font color="red">2</font>*. Is there a way to differentiate the requests originating from the other team's Product and those generated by my own value change listeners?
*<font color="red">3</font>*. Is there a different approach, incorporating the above-mentioned limitations, to clear out the session scope each time when a request is made through iFrame? That is, whenever a request is made through the other team's Product?
Edited by: user737922 on Apr 13, 2011 10:58 AM_(Temporary) Solution_:
Summary:
I am using the request parameter <b><tt>_adf.ctrl-state</tt></b> to differentiate between the HTTP requests that my application receives.
Details:
When I receive the request from the other team's Product, I receive a <tt>GET</tt> and a <tt>adf.ctrl-state</tt> value which I store into a local variable in my session-scoped managed bean. The <tt>adf.ctrl-state</tt> value stays the same for all requests (<tt>GET</tt> or <tt>POST</tt>) made from within my own application. It changes only when there is a new request from the other team's Product.
Also, as my application is accessed through an iFrame, there is no possibility of the generated URL being modified by the end-user.
For now it seems that the solution is appropriate but I am not fully confident if relying on the <tt>_adf.ctrl-state</tt> value is the best approach. -
Value change listener method does not refresh value
Hi Frank,
According to your documentation ADF Faces: How-to build dependent lists boxes with ADF and ADF Faces I have created dependent list box and it is working properly.
Now in the similar way I have created a form where one attribute is set as select one choice and it takes value from a lov and this attribute have a value change listener event and when selecting a value for this attribute from lov, in backing bean it will set another attribute of the form and the value will be taken from the other field of the lov for the current row.
But when I am running this, 1st time when I am selecting a value from lov, the 2nd attribute of the form gets its value but next time when I am selecting another value in LOV, the value in the other attribute is not changing accordingly.
My original form is (test_date,machine_code,machine_no...)
I have created LOV for machine_code.
This LOV is --select machine_code,machine_no from machine_mast;
This LOV returns machine_code to the machine_code field of my main form.
For machine_code, I have created a value change listener method and set its autosubmit property to true and for machine_no field I have set its partial trigger property to the ID of machine_code field.
The value change listener code is
BindingContainer bindings = this.getBindings();
DCIteratorBinding itr = (DCIteratorBinding)bindings.get("lov2_sqc0400_1Iterator");
Row rw = itr.getRowAtRangeIndex(((Integer)valueChangeEvent.getNewValue()).intValue());
Object machine_no= rw.getAttribute("MchnNo");
inputText2.setValue(machine_no);
Please help
Regards/Thanks
SKHi All,
Can anyone please help me?
Thanks/Regards
SK -
Value change listener method on h:selectBooleanCheckbox in h:dataTable
Hello,
Does JSF handle value change listeners as expected when they are attached to h:selectBooleanCheckbox components within an h:dataTable?
In the following example, I have a JSP that has some h:selectBooleanCheckbox components nested in an h:dataTable, and some that aren't. When I bulid and deploy the example to Tomcat 5.5, I can see (using the log4j output) that the value change listener methods for the checkboxes that are NOT in the dataTable are fired, but the ones that are in the dataTable do not get fired.
I am using Sun's RI of JSF, version 1.1.0.1.
Thanks,
Scott
----------------------------- JSP:
<%@ page language="java" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<f:view>
<h:form>
<h:dataTable value="#{checkboxBean.beans}" var="thisBean">
<h:column>
<h:outputText value="#{thisBean.id}: " />
</h:column>
<h:column>
<h:selectBooleanCheckbox value="#{thisBean.checked}" valueChangeListener="#{checkboxBean.somethingChanged}" />
</h:column>
</h:dataTable>
<h:panelGrid columns="2">
<h:outputText value="One:"/>
<h:selectBooleanCheckbox id="firstOne" valueChangeListener="#{checkboxBean.somethingChanged}" />
<h:outputText value="Two:"/>
<h:selectBooleanCheckbox id="secondOne" valueChangeListener="#{checkboxBean.somethingChanged}" />
<h:panelGroup/>
<h:commandButton value="Do Stuff" action="#{checkboxBean.doStuff}" />
</h:panelGrid>
</h:form>
</f:view>----------------------------- Beans:
package workshop;
import javax.faces.event.ValueChangeEvent;
import org.apache.log4j.Logger;
* Test attaching value change listener methods to checkboxes.
public class CheckboxBean {
private static final Logger logger = Logger.getLogger(CheckboxBean.class);
private SomeBean[] beans = null;
public CheckboxBean() {
logger.debug("CheckboxBean()");
public String load() {
SomeBean[] someBeans = new SomeBean[3];
someBeans[0] = new SomeBean("firstGuy", false);
someBeans[1] = new SomeBean("2ndGuy", false);
someBeans[2] = new SomeBean("third", false);
this.setBeans(someBeans);
return null;
public String doStuff() {
logger.debug("doStuff()");
return this.load();
public void somethingChanged(ValueChangeEvent e) {
logger.debug("somethingChanged() in component with id " + e.getComponent().getId() );
public SomeBean[] getBeans() {
logger.debug("getBeans()");
return this.beans;
public void setBeans(SomeBean[] beans) {
logger.debug("setBeans()");
this.beans = beans;
package workshop;
public class SomeBean {
private boolean checked = false;
private String id = null;
public SomeBean() {
public SomeBean(String anId, boolean bool) {
super();
this.id = anId;
this.checked = bool;
public String getId() {
return this.id;
public void setId(String id) {
this.id = id;
public boolean isChecked() {
return this.checked;
public boolean getChecked() {
return this.checked;
public void setChecked(boolean checked) {
this.checked = checked;
}----------------------------- faces-config.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
<faces-config>
<managed-bean>
<description>Checkbox bean.</description>
<managed-bean-name>checkboxBean</managed-bean-name>
<managed-bean-class>workshop.CheckboxBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
</faces-config>----------------------------- log4j config:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="RollingFile" class="org.apache.log4j.RollingFileAppender" >
<param name="File" value="/Users/scott/workshop/logs/workshop.log"/>
<param name="Append" value="false"/>
<param name="MaxFileSize" value="4096KB" />
<param name="MaxBackupIndex" value="4" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{DATE} %-5p %-15c{1} : %m%n"/>
</layout>
</appender>
<category name="workshop" >
<priority value="debug" />
</category>
<root>
<priority value="warn" />
<appender-ref ref="RollingFile" />
</root>
</log4j:configuration>I have Just run into the same problem. When using the following code inside a data table the valueChangeListener event is not fired when the checkbox has it's value changed. Is this a bug?
I created a simple page with just a form and the selectBooleanCheckbox. This time the valueChangeListener event fired OK. It seems the problem only occurs when the check box is inside the dataTable
here is the code snippet
<h:form >
<h:column>
<f:facet name="header">
<h:outputText value="Add to Basket"/>
</f:facet>
<h:selectBooleanCheckbox immediate="true" valueChangeListener="#{reportsResultHandler.addToBasket}" value="#{reportsResultHandler.addbasketChecked}" onchange="this.form.submit
();"/>
</h:column>
</h:form> -
Get action or value change listener to be invoked from phaseEvent
Hi,
Does a PhaseEvent object has information for which action or value change listener is to be invoked?
I have implemented a common logging method which has to be called on any action or value change event.
The method requires the name of the method bound to action or value change listener.
It is convinient if a phaseEvent object has information for the listener's method name because in that case I don't have to write a code calling the logging method in each action or value change listener but only in PhaseListener.
Regards,
KenjiSame as my thread...no answers...!
-
Getting a value of another textbox in value change listener
Hi
I am associating a value change listener with textbox1. and i need the values of textbox2 inside the listener. So every time, value of textbox1 changes , i want to call a listener which executes a query depending on the value of textbox2 which is constant. But i am not able to get the value of textbox2 inside the listener method.
Thanks in advance..Read on about the JSF lifecycle. The valuechangelistener will be fired at the end of the 3rd phase of the JSF lifecycle (process validations) and the input values will be set in the bean in the 4th phase of the JSF lifecycle (update model values).
In your case, a complete rewrite of the code may be more useful. If you are actually not interested in the difference between the old value and the new value, then remove the valuechangelistener and put the code logic in the action method of the bean. This will be executed in the 5th phase of the JSF lifecycle (invoke application), after the input values are been set.
Or, in my opinion better, introduce some AJAX framework and make use of its capabilities. For example Ajax4jsf. It saves you from synchronous form submits on every entered character which may lead to poor user experience.
This practical article might be helpful in understanding the JSF lifecycle: [http://balusc.blogspot.com/2006/09/debug-jsf-lifecycle.html] -
Generation of Annual Leave Quota at a time for the whole year
Hi All,
Kindly give some suggestions.
I am working on Time evaluation. We have a quota , Annual leave which is now given on monthly basis, means lets 12 annual leave are for whole year and employee are getting 1 leave on each month.
Now my requirement is to give this quota at a time in the start of every year. That means all the 12 annual leave should be generated in the start of a year.
When I select the option no pro rata calculation then I am getting all this leave in the start of the year. But when an employee is joined in the mid of the year then also 12 leave is been generated which is not correct.
Please suggest me how to make this leave as prorated so that for new joinee , this leave is generated taking into account the period and generate the prorate value for the whole year at the time of joining.
Thanks
Tanuja.Hi Sikinder,
I am using + time evaluation Status-2. We have to generate quota in PT60 for each period.
Write now we are getting annual leave quota getting generated in monthly basis. We want to genarate whole quota for the year in the 1st month of the year.
When I have given calender year in the accrual period , i am not getting any quota in the 1st month rather getting the whole quota in the end of the year.
Please suggest me what to do.
Regards,
Tanuja. -
How to configure multiple listeners to listen for the same instance.
Hello everyone,
I am running oracle database 11g and I want information regarding how to configure multiple listeners to listen for the same database instance. Actually I know how to configure more than one listener but the main thing that I am confused about is when we create listener.ora file, do we have to statically register the database instance with both the listeners or the instance will register itself with both the listeners.
According to my knowledge the instance will register with the listener specified by LOCAL_LISTENER parameter and we cannot have more than one value for this parameter.
Please only give detailed answers with example as I am tired of simple answers with details that I already know.Hello,
Yes, it can make sense to have several listener for one Oracle instance. For instance you may have one listener for the applications another listener for DBA administration tasks as well as one listener dedicated to dataguard broker. It is not possible to have several listeners listening on the same IP and Port.
By default the database try to automatically register to a listener on port 1521. To instruct the instance to register to a specifc list of listeners you can add in the init.ora the local_listener parameter with an alias definition:
i.e
local_listener=MY_SET_OFF_LISTENERS
in your tnsname.ora add an entry called:
MY_SET_OFF_LISTENERS_LOCAL= (ADDRESS_LIST=
(ADRESS=(PROTOCOL=TCP)(HOST=myhostname)(PORT=1530))
(ADRESS=(PROTOCOL=TCP)(HOST=myhostname)(PORT=1531))
(ADRESS=(PROTOCOL=TCP)(HOST=myhostname)(PORT=1532))
In this sample your instance will register to three listeners listening on respectively port 1530, 1531 and 1532
If you want your clients can be balanced over the 3 listeners -
Time Out error problem when i run the report for the whole plant
Dear all,
pls find the below coding, when i execute this report for the whole plant , it gives me time out error since it has to process huge database. pls suggest me in which part of my below coding i can improvise or any other better way to fetch the same result.
pls note that
i m using Views for querying.pls also note the comments given in Bold to understand the reason behind the coding.
Views used in are - ZVPOD and ZVPRDCONF.
START-OF-SELECTION.
Data: zstat type jest-stat.
data: stklocaf type mska-lgort.
data: stklocas type mska-lgort.
<u><b>To collect the status of the production order by joining the ZVPOD and JEST table.</b></u>
CLEAR it_ZVPRODDET.
SELECT DISTINCT ZVPOD~bukrs ZVPOD~aufnr ZVPOD~objnr
jest~stat ZVPOD~werks ZVPOD~arbpl ZVPOD~J_3AKORD2
FROM ZVPOD
INNER JOIN jest ON ZVPOD~objnr = jest~objnr
INTO CORRESPONDING FIELDS OF wa_ZVPRODDET where
plnbez in FGM and arbpl in wc and werks in plant
and SSAVD in eldate
and J_3AKORD2 in cups and jest~inact ne 'X'.
APPEND wa_ZVPRODDET TO it_ZVPRODDET.
ENDSELECT.
SORT it_ZVPRODDET BY aufnr stat.
<u><b>Loop thru Itab to check and delete the records from itab for the specified status.</b></u>
LOOP AT it_ZVPRODDET INTO wa_ZVPRODDET.
IF wa_ZVPRODDET-stat = 'I0045' . " TECO - compl
DELETE it_ZVPRODDET WHERE aufnr = wa_ZVPRODDET-aufnr.
ELSEIF wa_ZVPRODDET-stat = 'I0009' . " CNF - Confirmed
DELETE it_ZVPRODDET WHERE aufnr = wa_ZVPRODDET-aufnr.
ELSEIF wa_ZVPRODDET-stat = 'I0012' . " DLV - Delivered
DELETE it_ZVPRODDET WHERE aufnr = wa_ZVPRODDET-aufnr.
ELSEIF wa_ZVPRODDET-stat = 'I0046' . " CLSD - Closed
DELETE it_ZVPRODDET WHERE aufnr = wa_ZVPRODDET-aufnr.
ELSEIF wa_ZVPRODDET-stat = 'I0076' . " DLFL - Del Flag
DELETE it_ZVPRODDET WHERE aufnr = wa_ZVPRODDET-aufnr.
ELSEIF wa_ZVPRODDET-stat = 'E0003' . " SCLS - Short Close
CLEAR tj30t.
SELECT SINGLE txt04
FROM tj30t INTO tj30t-txt04
WHERE stsma = 'PRDHOLD' AND
estat = 'E0003' AND
txt04 = 'SCLS' AND
spras = 'EN'.
IF sy-subrc = 0.
DELETE it_ZVPRODDET WHERE aufnr = wa_ZVPRODDET-aufnr.
ENDIF.
ENDIF.
* Condition for Prod Order released - REL
IF wa_ZVPRODDET-stat = 'I0002'.
mreleased = 'Y'.
else.
mreleased = 'N'.
endif.
zstat = wa_ZVPRODDET-stat.
IF mreleased = 'N'.
DELETE it_ZVPRODDET WHERE aufnr = wa_ZVPRODDET-aufnr
and stat = zstat.
ENDIF.
ENDLOOP.
<u><b>Loop thru the filtered ITAB to get all the production order details for the production order number specified in the where clause( zaufnr ) and populate another internal table.</b></u>
LOOP AT it_ZVPRODDET INTO wa_ZVPRODDET.
zaufnr = wa_zvproddet-aufnr.
zarbid = wa_zvproddet-arbid.
at new aufnr.
SELECT DISTINCT * INTO CORRESPONDING FIELDS OF walnpln
FROM zvpod where plnbez in FGM and arbpl in wc and SSAVD in
eldate and werks in plant and J_3AKORD2 in cups and aufnr = zaufnr.
APPEND walnpln TO itablnpln.
endselect.
endat.
endloop.
clear walnpln.
<u><b>
Looping thru Internal table and performs all the following calculations and inner loop
and also relevant querying.</b></u>
<u><b>Assume that ITABLNPLN holds appox. 8000 records.</b></u>
LOOP AT itablnpln INTO walnpln.
contot = 0.
SELECT distinct * INTO CORRESPONDING FIELDS OF TABLE itablnp
FROM zvprdconf where aufnr = walnpln-aufnr and
j_3asize = walnpln-j_3akordx and stzhl ne '2' and stokz ne 'X'.
clear zvprdconf.
SELECT single isdd
FROM zvprdconf into zvprdconf-isdd
where aufnr = walnpln-aufnr and
j_3asize = walnpln-j_3akordx and stzhl ne '2' and stokz ne 'X'.
SELECT single isdz
FROM zvprdconf into zvprdconf-isdz
where aufnr = walnpln-aufnr and
j_3asize = walnpln-j_3akordx and stzhl ne '2' and stokz ne 'X'.
IF sy-subrc EQ 0.
<u><b>Assume that ITABLNP holds appox. 30 records.</b></u>
loop at itablnp into walnp.
contot = contot + walnp-J_3ALMNGA.
move walnp-J_3ASIZE to walnpln-J_3ASIZE.
move zvprdconf-isdd to walnpln-zdate.
move zvprdconf-isdz to walnpln-ztime.
endloop.
walnpln-output = contot.
endif.
walnpln-wip = walnpln-menge - contot.
if walnpln-werks = '1000'.
stklocaf = '1050'.
stklocas = '1060'.
elseif walnpln-werks = '2000'.
stklocaf = '2150'.
stklocas = '2160'.
endif.
select single kunnr into walnpln-ship from vbpa where
vbeln = walnpln-KDAUF and PARVW = 'WE'.
zship = walnpln-ship.
move zship to walnpln-ship.
select single kalab into walnpln-zactqty from mska
where matnr = walnpln-plnbez
and j_3asize = walnpln-J_3AKORDX and LGORT = stklocaf.
condense walnpln-kdauf.
zsales = walnpln-kdauf.
concatenate zsales 'S' into zso.
select single kalab into walnpln-zsndqty from mska
where matnr = walnpln-plnbez
and j_3asize = walnpln-J_3AKORDX and LGORT = stklocas
and J_4KSCAT = zso.
zmatn = walnpln-plnbez.
zsale = walnpln-KDAUF.
walnpln-kdauf = zsale.
walnpln-plnbez = zmatn.
zcust = walnpln-kunnr.
walnpln-kunnr = zcust.
select single bezei into walnpln-season from TVV2T where
kvgr2 = walnpln-kvgr2 and SPRAS = 'E'.
select single bezei into walnpln-shipmode from T173T where
vsart = walnpln-vsart and SPRAS = 'E'.
STRL = strlen( walnpln-j_3akord2 ).
if strl = 4.
move walnpln-j_3akord2 to walnpln-j_3akord3.
clear walnpln-j_3akord2.
endif.
move zremk to walnpln-remk.
MODIFY itablnpln FROM walnpln.
contot = 0.
clear itablnp.
ENDLOOP.
PERFORM build_fieldcatalog.
PERFORM build_layout.
PERFORM display_alv_report.Hi raja,
Plese go through the suggessitions.
1.avoide the select ...endselect. write the below select
CLEAR IT_ZVPRODDET.
SELECT DISTINCT
ZVPOD~BUKRS
ZVPOD~AUFNR
ZVPOD~OBJNR
JEST~STAT
ZVPOD~WERKS
ZVPOD~ARBPL
ZVPOD~J_3AKORD2
FROM ZVPOD
INNER JOIN JEST ON ZVPOD~OBJNR = JEST~OBJNR
INTO CORRESPONDING FIELDS TABLE IT_ZVPRODDET
WHERE PLNBEZ IN FGM AND
ARBPL IN WC AND
WERKS IN PLANT AND
SSAVD IN ELDATE AND
J_3AKORD2 IN CUPS AND
JEST~INACT NE 'X'.
IF SY-SUBRC = 0.
SORT TABLE IT_ZVPRODDET.
ENDIF.
2..first of all dont delete a record inside the loop. instead use the Field symobols.
have u obsereved you code in the loop!!!!. wht u r doing..
u r removing the same record which u in the loop..
If u wanto delete the entires with check to<b> stat</b>... <b>then.. why dont u put the STAT field in Wher e condition..?</b> by this you reduce the data base select time..
Now the select query is like the below....
CLEAR IT_ZVPRODDET.
SELECT DISTINCT
ZVPOD~BUKRS
ZVPOD~AUFNR
ZVPOD~OBJNR
JEST~STAT
ZVPOD~WERKS
ZVPOD~ARBPL
ZVPOD~J_3AKORD2
FROM ZVPOD
INNER JOIN JEST ON ZVPOD~OBJNR = JEST~OBJNR
INTO CORRESPONDING FIELDS TABLE IT_ZVPRODDET
WHERE PLNBEZ IN FGM AND
ARBPL IN WC AND
WERKS IN PLANT AND
SSAVD IN ELDATE AND
J_3AKORD2 IN CUPS AND
JEST~INACT NE 'X' AND
( STAT <> 'I0045' AND
STAT <> 'I0045' AND
STAT <> 'I0009' AND
STAT <> 'I0012' AND
STAT <> 'I0046' AND
STAT <> 'I0076' AND
STAT <> 'E0003' ).
IF SY-SUBRC = 0.
SORT TABLE IT_ZVPRODDET.
ENDIF.
<b>3.</b> WHT IS MEANING OF THE SELECT
<b> CLEAR TJ30T.
SELECT SINGLE TXT04
FROM TJ30T INTO TJ30T-TXT04
WHERE STSMA = 'PRDHOLD' AND
ESTAT = 'E0003' AND
TXT04 = 'SCLS' AND
SPRAS = 'EN'.
IF SY-SUBRC = 0.
DELETE IT_ZVPRODDET WHERE AUFNR = WA_ZVPRODDET-AUFNR.
ENDIF.</b>....... IN WHERE CONDION U R GIven all are constant values right?..
why u need select it inside the loop.. u can write before the SELECT from ZVPOD..
that why first checke this field then go for fur thure selects..
<b>now u r code looks like this....</b>
CLEAR TJ30T.
SELECT SINGLE TXT04
FROM TJ30T INTO TJ30T-TXT04
WHERE STSMA = 'PRDHOLD' AND
ESTAT = 'E0003' AND
TXT04 = 'SCLS' AND
SPRAS = 'EN'.
IF SY-SUBRC = 0.
CLEAR IT_ZVPRODDET.
SELECT DISTINCT
ZVPOD~BUKRS
ZVPOD~AUFNR
ZVPOD~OBJNR
JEST~STAT
ZVPOD~WERKS
ZVPOD~ARBPL
ZVPOD~J_3AKORD2
FROM ZVPOD
INNER JOIN JEST ON ZVPOD~OBJNR = JEST~OBJNR
INTO CORRESPONDING FIELDS TABLE IT_ZVPRODDET
WHERE PLNBEZ IN FGM AND
ARBPL IN WC AND
WERKS IN PLANT AND
SSAVD IN ELDATE AND
J_3AKORD2 IN CUPS AND
JEST~INACT NE 'X' AND
JEST~STAT <> 'I0045' AND
JEST~STAT <> 'I0045' AND
JEST~STAT <> 'I0009' AND
JEST~STAT <> 'I0012' AND
JEST~STAT <> 'I0046' AND
JEST~STAT <> 'I0076' AND
JEST~STAT <> 'E0003' ).
IF SY-SUBRC = 0.
SORT TABLE IT_ZVPRODDET.
ENDIF.
ENDIF.
there are so many select inside the loop...... please Delete all of them.... write them be for the loop.......using the FOR ALL ENTRIES.....
THEN LOOP THE TABLE USING THE WHERE CONDITIONS.
<b>Plese write u updated code here again</b>.. -
Freight cost condition for the whole purchase order (Header relation)
Maybe you could help me out with the following difficulty regarding freight costs for the whole purchase orders from the mass maintenance transaction MEK1 for pricing conditions.
I try to have one freight condition for the whole purchase order.
For instance, I maintained in the transaction MEK1 for the condition FRA1 the key combination vendor and purchasing organization (table 44) and entered an absolute value of X EUR.
Unfortunately this condition will not pulled as header costs in the purchase order, because I would have had defined an access sequence in the condition type, but this is not allowed for header conditions in general.
Do you have any workaround to maintain an item condition, which works like a header condition, so that I am allowed to have an access sequence and be able to maintain MEK1?
Any comments and help are very welcome.
Many thanks in advance
SabrinaHi,
Fright and discount conditions are called supplement conditon type and they are always matained with main condition type.
Please check PB00 condition type in m/06 transaction. You will find pricing procedure assinged as RM0002 to PB00 condtion type.
So you can maintain fra1 and other supplement condtions in main condtion only in MEk1 trasnaction.
By selecting the line item and then shift + F7 you can maintain fright or discount condtions for PB00 condition types with out having access sequence for supplement condtion types.
Regards,
shailesh Mackwan -
How do the change management for the configuration of the adapters
Hi all.
How do the change management for the configuration of the adapters, when i transport the software version component from an development system to production system.
For example, for to change the url parameters of adapters soap inside the production system. I will need type, the news values in this system?
Thanks
Best Regards.There is an option to pass all the paramters except those who changes from
system to system.
for example,
if you are reading from a file from the directory: <SYS>\CREMAS_<TS>.XML
when <SYS> is DEV or QAS or PROD, and <TS> is time stamp,
you can create channel template that read file with file pattern CREMAS_*.XML,
this can save you a lot of work, however, parameters that are diffrent in every system, (in this case the directory DEV,QAS,PROD) you must enter manually in every system. -
PanelBox Disclosure icon is calling only checkbox value change listener
Hi
I have a page fragment, where i have a switcher and showing different facets based on condition, in my second facet i have a panel box which has a panel group layout which has one selectbooleancheckbox and one outputtext.
When i click on the check box, i need to make the outputtext invisible, this i am trying to achieve thru valuchangelistener. I am able to make it visible and invisible based on the value. The same way i have multiple panel boxes, the issue here is when i try to undisclose the panel box, or disclose the other panel boxes, the valuechangeevent is getting called.
I am using pageFlowScope for the bean and it has so many other value change events for select one choices, but only for the first time the check box value change events are getting called. I can achieve the same using java script, but i am trying to avoid using js.
I am using JDev 11.1.2.1.0 and the page fragment is in task flow, where i used the task flow as a region in a jspx page. Thanks.
N.I think you're not dealing correctly with the default value of the selectOneMany. Do not let the submitted value be implicit but rather tells exactly what it should be. To manage that add a "noSelection" selectItem and return this value instead of null in from getImageType()
Thus you might have:
<h:selectOneMenu id="selectionid"
value="#{tagGeneratorTagView.imageType}" valueChangeListener="#{imageHandler.changeImageType}"
onchange="submit();">
<f:selectItem itemValue="NOVALUE" itemLabel="No value selected"/>
<f:selectItem .... your items ..
</h:selectOneMenu>And in getImageType
public String getImageType()
//this is not a good example. the default value should be inject
if(null==imageType)
return "NOVALUE"
return imageType
}
Maybe you are looking for
-
Can I get the Dust Jacket and the Great Cover Look of iPhoto in Aperture?
Hello, I am a huge fan of iPhoto (and most of the other Apple products.) I am using Aperture 2 and I recently created and ordered a book using it. I was blown away by the page layout options, however, I was greatly disappointed when I received my boo
-
Hello, My 20inch iMac's internal drive died and I'm trying to re-install Lion on an external drive. If I could get the Lion DMG file I think I'd be all set but am not sure how to do this. It doesn't look like the Lion Recovery feature is supported in
-
I know there are several posts here that express the same issue, but I cannot find any definitive resolution, so I will ask the question again. iPhone 3Gs, iOS 4.2.1, in the iPod application, the list of songs and artists does not line up correctly w
-
Regarding installing in ps creative suite
sir i have a valid serial key but only photoshop is working
-
Adobe Form via RFC - spool order
Hello experts. When I'm calling an Adobe Form via RFC I'm not getting the spool order in the target system. The Form is issued with: fp_outputparams-device = 'PRINTER'. fp_outputparams-NODIALOG = 'X'. fp_outputparams-DEST = '5175'. fp_output