Help needed in understanding the compiled format of actionscripts
Hi all,
I need to inject an actionscript to an existing .SWF file. So
can anyone help me out in explaining the process involved in the
compilation of the action script into binary form which has to be
injected into the existing SWF file. I need to do this
programmatically using Java. So pls dont suggest me any Third party
softwares which does that.
Please help me out..
Thanks in advance.
Prabakaran Srinivasan.
Hi all,
I need to inject an actionscript to an existing .SWF file. So
can anyone help me out in explaining the process involved in the
compilation of the action script into binary form which has to be
injected into the existing SWF file. I need to do this
programmatically using Java. So pls dont suggest me any Third party
softwares which does that.
Please help me out..
Thanks in advance.
Prabakaran Srinivasan.
Similar Messages
-
Help needed in understanding the code.
Hi All,
I am just trying to understand the Java code in one Self Serice page. However, I am having tough in understanding the CO code. In the prosessRequest class, I have the below code.
oapagecontext.putTransactionValue("AddAssignmentInsertRowFlag", "N");
oaapplicationmodule.getTransaction().commit();
As soon as, oaapplicationmodule.getTransaction().commit();
gets executed, its calling some other class. Not sure what is being called, but i can see the log messages that its executing some other class which actually does the calls to DB APIs and inserting data into main tables.
Can you please explain me what is being called to make DB API calls. I would greatly appreciate your help.
Thanks in Advance!
- Rani
****************************Here is the full code of class for your reference****************************
public void processFormRequest(OAPageContext oapagecontext, OAWebBean oawebbean)
if("SelectedResourceLink".equals(oapagecontext.getParameter("event")))
Debug.log(oapagecontext, this, "SelectedResourceLink has been pressed", 3);
oapagecontext.redirectImmediately("OA.jsp?akRegionCode=PA_SELECTED_RESOURCES_LAYOUT&akRegionApplicationId=275", true, "RP");
String s = (String)oapagecontext.getTransactionValue("AssignmentType");
super.processFormRequest(oapagecontext, oawebbean);
Debug.log(oapagecontext, this, "in processFormRequest()", 3);
OAApplicationModule oaapplicationmodule = oapagecontext.getRootApplicationModule();
if(!"Y".equals(oapagecontext.getParameter("paMass")))
String s1 = oapagecontext.getParameter("event");
if("lovUpdate".equals(s1))
Debug.log(oapagecontext, this, "*** User Selected a value from LOV ***", 3);
String s3 = oapagecontext.getParameter("source");
Debug.log(oapagecontext, this, "*** lovInputSourceId = " + s3 + " ***", 3);
if("ProjectNumber".equals(s3) && "Project".equals(s))
Hashtable hashtable = oapagecontext.getLovResultsFromSession(s3);
String s10 = (String)hashtable.get("ProjectId");
Debug.log(oapagecontext, this, "*** ProjectId ***" + s10, 3);
oapagecontext.putTransactionValue("paProjectId", s10);
if("Project".equals(s))
Debug.log(oapagecontext, this, "*** Setting default value for Delivery assignment ***", 3);
oaapplicationmodule.invokeMethod("defaultProjectAttrs");
if("RoleName".equals(s3))
Hashtable hashtable1 = oapagecontext.getLovResultsFromSession(s3);
Debug.log(oapagecontext, this, "*** RoleName Hashtable Contents ***" + hashtable1.toString(), 3);
String s11 = (String)hashtable1.get("RoleId");
Debug.log(oapagecontext, this, "*** RoleId ***" + s11, 3);
Debug.log(oapagecontext, this, "*** AssignmentType = " + s + "***", 3);
if("Open".equals(s))
Debug.log(oapagecontext, this, "*** Calling defaultJobAttrs for Open Assignment***", 3);
Serializable aserializable[] = {
s11
oaapplicationmodule.invokeMethod("defaultJobAttrs", aserializable);
if("Template".equals(s) || "Open".equals(s))
Debug.log(oapagecontext, this, "*** Defaulting Competencies ***" + s11, 3);
OAViewObject oaviewobject = (OAViewObject)oapagecontext.getApplicationModule(oawebbean).findViewObject("RoleCompetenciesVO");
oaviewobject.setMaxFetchSize(-1);
oaviewobject.setWhereClauseParam(0, s11);
oaviewobject.executeQuery();
Debug.log(oapagecontext, this, "*** End LOV event ***", 3);
String s4 = "";
String s8 = "";
OASubTabLayoutBean oasubtablayoutbean1 = (OASubTabLayoutBean)oawebbean.findIndexedChildRecursive("AddAssignmentSubTabLayout");
if("Project".equals(s) && !oasubtablayoutbean1.isSubTabClicked(oapagecontext))
OAViewObject oaviewobject1 = (OAViewObject)oapagecontext.getApplicationModule(oawebbean).findViewObject("AddNewAssignmentVO");
s4 = (String)oaviewobject1.first().getAttribute("ProjectId");
s8 = (String)oaviewobject1.first().getAttribute("ProjectNumber");
Debug.log(oapagecontext, this, "*** lProjectId = " + s4, 3);
Debug.log(oapagecontext, this, "*** lProjectNumber = " + s8, 3);
if("Project".equals(s) && !oasubtablayoutbean1.isSubTabClicked(oapagecontext) && !StringUtils.isNullOrEmpty(s8))
Debug.log(oapagecontext, this, "Delivery Assignment, Project Number is there but no Project Id", 3);
if(s4 == null || s4.equals(""))
ViewObject viewobject = oapagecontext.getApplicationModule(oawebbean).findViewObject("ObtainProjectId");
if(viewobject == null)
String s14 = "SELECT project_id FROM PA_PROJECTS_ALL WHERE segment1 =:1";
viewobject = oaapplicationmodule.createViewObjectFromQueryStmt("ObtainProjectId", s14);
viewobject.setWhereClauseParam(0, s8);
viewobject.executeQuery();
int j = viewobject.getRowCount();
if(j != 1)
Debug.log(oapagecontext, this, "Error : Project Number is Invalid or not unique", 3);
OAException oaexception4 = null;
oaexception4 = new OAException("PA", "PA_PROJECT_NUMBER_INVALID");
oaexception4.setApplicationModule(oaapplicationmodule);
throw oaexception4;
oracle.jbo.Row row = viewobject.last();
if(row != null)
Object obj2 = row.getAttribute(0);
if(obj2 != null)
s4 = obj2.toString();
if(s4 != null)
oapagecontext.putTransactionValue("paProjectId", s4);
if(oaapplicationmodule.findViewObject("AddNewAssignmentsVO") != null)
oaapplicationmodule.findViewObject("AddNewAssignmentVO").first().setAttribute("ProjectId", s4);
} else
Debug.log(oapagecontext, this, "Error : No rows returned in Project Number query", 3);
OAException oaexception5 = null;
oaexception5 = new OAException("PA", "PA_PROJECT_NUMBER_INVALID");
oaexception5.setApplicationModule(oaapplicationmodule);
throw oaexception5;
String s12 = "F";
if(s4 != null && !s4.equals(""))
String s13 = Security.checkUserPrivilege("PA_ASN_CR_AND_DL", "PA_PROJECTS", s4, oapagecontext, false);
if("F".equals(s13))
OAException oaexception3 = null;
oaexception3 = new OAException("PA", "PA_ADD_DELIVERY_ASMT_SECURITY");
oaexception3.setApplicationModule(oaapplicationmodule);
Debug.log(oapagecontext, this, "ERROR:" + oaexception3.getMessage(), 3);
throw oaexception3;
OAViewObject oaviewobject2 = (OAViewObject)oapagecontext.getApplicationModule(oawebbean).findViewObject("AddNewAssignmentVO");
Object obj = oaviewobject2.first().getAttribute("BillRateOverride");
Object obj1 = oaviewobject2.first().getAttribute("BillRateCurrOverride");
Object obj3 = oaviewobject2.first().getAttribute("MarkupPercentOverride");
Object obj4 = oaviewobject2.first().getAttribute("DiscountPercentOverride");
Object obj5 = oaviewobject2.first().getAttribute("TpRateOverride");
Object obj6 = oaviewobject2.first().getAttribute("TpCurrencyOverride");
Object obj7 = oaviewobject2.first().getAttribute("TpCalcBaseCodeOverride");
Object obj8 = oaviewobject2.first().getAttribute("TpPercentAppliedOverride");
Object obj9 = null;
Object obj10 = null;
Debug.log(oapagecontext, this, "in AddAssignmentsTopCO processFcstInfoRg(): getting the implementation options", 3);
Object obj11 = oaviewobject2.first().getAttribute("BrRateDiscReasonCode");
Object obj12 = oapagecontext.getTransactionValue("rateDiscReasonFlag");
Object obj13 = oapagecontext.getTransactionValue("brOverrideFlag");
Object obj14 = oapagecontext.getTransactionValue("brDiscountOverrideFlag");
String s22 = oapagecontext.getParameter("BillRateRadioGroup");
if("BRCurrencyRadioButton".equals(s22))
Debug.log(oapagecontext, this, "BRCurrencyRadioButton chosen", 3);
if(obj == null || obj1 == null)
Debug.log(oapagecontext, this, "error", 3);
OAException oaexception6 = new OAException("PA", "PA_CURR_BILL_RATE_REQUIRED");
oaexception6.setApplicationModule(oaapplicationmodule);
throw oaexception6;
} else
if("BRMarkupRadioButton".equals(s22))
Debug.log(oapagecontext, this, "BRMarkup%RadioButton chosen", 3);
if(obj3 == null)
Debug.log(oapagecontext, this, "error", 3);
OAException oaexception7 = new OAException("PA", "PA_MARKUP_PERCENT_REQUIRED");
oaexception7.setApplicationModule(oaapplicationmodule);
throw oaexception7;
} else
if("BRDiscountRadioButton".equals(s22))
Debug.log(oapagecontext, this, "BRDiscount%RadioButton chosen", 3);
if(obj4 == null)
Debug.log(oapagecontext, this, "error", 3);
OAException oaexception8 = new OAException(oapagecontext.getMessage("PA", "PA_DISCOUNT_PERCENT_REQUIRED", null));
oaexception8.setApplicationModule(oaapplicationmodule);
throw oaexception8;
if("Y".equals(oapagecontext.getTransactionValue("paMass")) || "Admin".equals(s) || "Template".equals(s))
Debug.log(oapagecontext, this, "Need not have this check for team templates ", 3);
} else
if(obj13 != null && obj13.equals("Y") && obj12 != null && obj12.equals("Y") && "BRCurrencyRadioButton".equals(s22) && StringUtils.isNullOrEmpty((String)obj11))
Debug.log(oapagecontext, this, "error 1", 3);
OAException oaexception9 = new OAException("PA", "PA_RATE_DISC_REASON_REQUIRED");
oaexception9.setApplicationModule(oaapplicationmodule);
throw oaexception9;
if(obj14 != null && obj14.equals("Y") && obj12 != null && obj12.equals("Y") && "BRDiscountRadioButton".equals(s22) && StringUtils.isNullOrEmpty((String)obj11))
Debug.log(oapagecontext, this, "error 2", 3);
OAException oaexception10 = new OAException("PA", "PA_RATE_DISC_REASON_REQUIRED");
oaexception10.setApplicationModule(oaapplicationmodule);
throw oaexception10;
Debug.log(oapagecontext, this, "*** Selected transfer price radio shr = " + s22, 3);
oapagecontext.putTransactionValue("BROGroupSelected", s22);
Debug.log(oapagecontext, this, "*** 1 :Selected bill rate radio = " + s22, 3);
if(s22 != null)
oapagecontext.putSessionValue("BROGroupSelected", s22);
s22 = oapagecontext.getParameter("TransferPriceRadioGroup");
Debug.log(oapagecontext, this, "*** Selected transfer price radio = " + s22, 3);
if("TPCurrencyRadioButton".equals(s22))
Debug.log(oapagecontext, this, "***TPCurrencyRadioButton chosen", 3);
if(obj5 == null || obj6 == null)
Debug.log(oapagecontext, this, "error", 3);
OAException oaexception11 = new OAException("PA", "PA_CURR_RATE_REQUIRED");
oaexception11.setApplicationModule(oaapplicationmodule);
throw oaexception11;
} else
if("TPBasisRadioButton".equals(s22))
Debug.log(oapagecontext, this, "***TPBasisRadioButton chosen", 3);
if(obj7 == null || obj8 == null)
Debug.log(oapagecontext, this, "error", 3);
OAException oaexception12 = new OAException("PA", "PA_BASIS_APPLY_PERCENT_REQD");
oaexception12.setApplicationModule(oaapplicationmodule);
throw oaexception12;
oapagecontext.putTransactionValue("TPORadioGroupSelected", s22);
if(oaapplicationmodule.findViewObject("AddNewAssignmentVO").first().getAttribute("RoleId") != null)
Debug.log(oapagecontext, this, "*** Role Id is + " + oaapplicationmodule.findViewObject("AddNewAssignmentVO").first().getAttribute("RoleId"), 3);
if(oapagecontext.getParameter("SearchCompetencies") != null)
String s2 = "OA.jsp?akRegionCode=PA_COMP_SEARCH_LAYOUT&akRegionApplicationId=275&paCallingPage=AddAssignment";
oapagecontext.redirectImmediately(s2, true, "RP");
OASubTabLayoutBean oasubtablayoutbean = (OASubTabLayoutBean)oawebbean.findIndexedChildRecursive("AddAssignmentSubTabLayout");
if(s.equals("Project") && oasubtablayoutbean.isSubTabClicked(oapagecontext) && !StringUtils.isNullOrEmpty((String)oapagecontext.getTransactionValue("paProjectId")))
String s5 = "PA_ASN_FCST_INFO_ED";
String s9 = "F";
s9 = Security.checkUserPrivilege(s5, "PA_PROJECTS", (String)oapagecontext.getTransactionValue("paProjectId"), oapagecontext, false);
if(s9.equals("F"))
Debug.log(oapagecontext, this, "Error : PA_ASN_FCST_INFO_ED previelge not found", 3);
OAException oaexception2 = null;
oaexception2 = new OAException("PA", "PA_NO_SEC_FIN_INFO");
oaexception2.setApplicationModule(oaapplicationmodule);
throw oaexception2;
if(oapagecontext.getParameter("GoBtn") != null)
if("Y".equals(oapagecontext.getTransactionValue("paMass")) && "0".equals(oapagecontext.getTransactionValue("paNumSelectedResources")))
OAException oaexception = new OAException("PA", "PA_NO_RESOURCE_SELECTED");
oaexception.setApplicationModule(oapagecontext.getRootApplicationModule());
Debug.log(oapagecontext, this, "ERROR:" + oaexception.getMessage(), 3);
throw oaexception;
String s6 = "T";
if(s.equals("Admin") && "Y".equals(oapagecontext.getTransactionValue("paMass")) && "1".equals(oapagecontext.getTransactionValue("paNumSelectedResources")))
Debug.log(oapagecontext, this, "resource id[19] is " + (String)oapagecontext.getTransactionValue("paResourceId"), 3);
if(oapagecontext.getTransactionValue("AdminSecurityChecked") == null)
String s7 = Security.checkPrivilegeOnResource("-999", (String)oapagecontext.getTransactionValue("paResourceId"), SessionUtils.getResourceName((String)oapagecontext.getTransactionValue("paResourceId"), oapagecontext), "PA_ADM_ASN_CR_AND_DL", null, oapagecontext, false);
if("F".equals(s7))
OAException oaexception1 = new OAException("PA", "PA_ADD_ADMIN_ASMT_SECURITY");
oaexception1.setApplicationModule(oapagecontext.getRootApplicationModule());
Debug.log(oapagecontext, this, "ERROR:" + oaexception1.getMessage(), 3);
throw oaexception1;
if("SUBMIT_APPRVL".equals(oapagecontext.getParameter("AddAsgmtApplyAction")))
oapagecontext.putTransactionValue("Save", "N");
else
oapagecontext.putTransactionValue("Save", "Y");
String as[] = oaapplicationmodule.getApplicationModuleNames();
String as1[] = oaapplicationmodule.getViewObjectNames();
Debug.log(oapagecontext, this, "no of app module: " + as.length, 3);
Debug.log(oapagecontext, this, "no of view: " + as1.length, 3);
for(int i = 0; i < as.length; i++)
Debug.log(oapagecontext, this, "app module: " + as, 3);
for(int k = 0; k < as1.length; k++)
Debug.log(oapagecontext, this, "app module: " + as1[k], 3);
Debug.log(oapagecontext, this, "*** assignmentType = " + s, 3);
Debug.log(oapagecontext, this, "*** projectId = " + oapagecontext.getTransactionValue("paProjectId"), 3);
if("Project".equals(s) && !StringUtils.isNullOrEmpty((String)oapagecontext.getTransactionValue("paProjectId")) && !"Y".equals(oapagecontext.getParameter("paMass")))
Debug.log(oapagecontext, this, "*** Setting default staffing owner for add delivery assignment -- projectId = " + oapagecontext.getTransactionValue("paProjectId"), 3);
oaapplicationmodule.invokeMethod("setDefaultStaffingOwner");
OAViewObject oaviewobject3 = (OAViewObject)oaapplicationmodule.findViewObject("RoleCompetenciesVO");
oaviewobject3.setMaxFetchSize(0);
oaviewobject3.setRangeSize(-1);
oracle.jbo.Row arow[] = oaviewobject3.getAllRowsInRange();
for(int l = 0; l < arow.length; l++)
RoleCompetenciesVORowImpl rolecompetenciesvorowimpl = (RoleCompetenciesVORowImpl)oaviewobject3.getRowAtRangeIndex(l);
Debug.log(oapagecontext, this, "roleCompetenciesVORowImpl" + rolecompetenciesvorowimpl, 3);
rolecompetenciesvorowimpl.setPlsqlState((byte)0);
oapagecontext.putTransactionValue("AddAssignmentInsertRowFlag", "N");
oaapplicationmodule.getTransaction().commit();
if("Y".equals(oapagecontext.getTransactionValue("paMass")) && !"1".equals(oapagecontext.getTransactionValue("paNumSelectedResources")))
if(!"SUBMIT_APPRVL".equals(oapagecontext.getParameter("AddAsgmtApplyAction")))
Debug.log(oapagecontext, this, "Save, Mass, NumSelectedResources>1", 3);
Debug.log(oapagecontext, this, "work flow has been launched", 3);
OADialogPage oadialogpage = new OADialogPage((byte)3, new OAException("PA", "PA_MASS_ASSIGNMENT_CONFIRM"), null, "OA.jsp?akRegionCode=PA_RESOURCE_LIST_LAYOUT&akRegionApplicationId=275&addBreadCrumb=N", null);
oadialogpage.setRetainAMValue(false);
oapagecontext.redirectToDialogPage(oadialogpage);
return;
Debug.log(oapagecontext, this, "SaveAndSubmit, Mass, NumSelectedResources>1", 3);
putParametersOnSession(oapagecontext);
int i1 = 0;
int j1 = 0;
String s21 = "SelectedResourceId";
int l1 = Integer.parseInt(oapagecontext.getTransactionValue("paNumSelectedResources").toString());
Debug.log(oapagecontext, this, "size of resourceArray = " + l1, 3);
String as2[] = new String[l1];
for(; !"END".equals(oapagecontext.getTransactionValue(s21.concat(Integer.toString(i1)))); i1++)
if(oapagecontext.getTransactionValue(s21.concat(Integer.toString(i1))) != null)
Debug.log(oapagecontext, this, "resource id = " + oapagecontext.getTransactionValue(s21.concat(Integer.toString(i1))).toString(), 3);
as2[j1] = oapagecontext.getTransactionValue(s21.concat(Integer.toString(i1))).toString();
j1++;
SessionUtils.putMultipleParameters("paResourceId", as2, oapagecontext);
Debug.log(oapagecontext, this, "redirect to Mass Submit for Approval page", 3);
oapagecontext.redirectImmediately("OA.jsp?akRegionCode=PA_MASS_SUBMIT_LAYOUT&akRegionApplicationId=275&paCallingPage=MassAdd&paProjectId=" + oapagecontext.getTransactionValue("p_project_id"), false, "RP");
return;
if("RETURN_TO".equals(oapagecontext.getParameter("AddAsgmtApplyAction")))
Debug.log(oapagecontext, this, "Return to Option Selected ", 3);
String s15 = (String)oapagecontext.getTransactionValue("PrevPageUrl");
int k1 = s15.indexOf("OA.jsp?");
s15 = s15.substring(k1);
Debug.write(oapagecontext, this, "*** RETURN_TO URL: " + s15, 3);
oapagecontext.redirectImmediately(s15);
} else
if("ADD_ANOTHER".equals(oapagecontext.getParameter("AddAsgmtApplyAction")))
Debug.log(oapagecontext, this, "Add Another Option Selected", 3);
oaapplicationmodule.invokeMethod("resetAddNewAssignment");
if(oaapplicationmodule.findViewObject("RoleCompetenciesVO") != null)
oaapplicationmodule.findViewObject("RoleCompetenciesVO").clearCache();
String s16;
if(!s.equals("Project") && !s.equals("Admin"))
s16 = "OA.jsp?akRegionCode=PA_ADD_ASSIGNMENTS_PAGE_LAYOUT&akRegionApplicationId=275&paProjectId=" + oapagecontext.getTransactionValue("paProjectId") + "&paAssignmentType=" + s + "&OA_SubTabIdx=0";
else
s16 = "OA.jsp?akRegionCode=PA_ADD_ASSIGNMENTS_PAGE_LAYOUT&akRegionApplicationId=275&paResourceId=" + oapagecontext.getTransactionValue("paResourceId") + "&paAssignmentType=" + s + "&OA_SubTabIdx=0";
Debug.log(oapagecontext, this, "nextUrl " + s16, 3);
if("Template".equals(s))
oapagecontext.redirectImmediately(s16, true, "S");
else
oapagecontext.redirectImmediately(s16, false, "S");
} else
if("UPDATE_DETAILS".equals(oapagecontext.getParameter("AddAsgmtApplyAction")))
Debug.log(oapagecontext, this, "Update Details Selected ", 3);
String s17 = "";
if("Staffed".equals(s))
s17 = "ProjStaffedAsmt";
else
if("Admin".equals(s))
s17 = "AdminAsmt";
else
if("Project".equals(s))
s17 = "PersonStaffedAsmt";
else
if("Open".equals(s))
s17 = "OpenAsmt";
else
if("Template".equals(s))
s17 = "TemplateAsmt";
String s19 = "OA.jsp?akRegionCode=PA_ASMT_LAYOUT&akRegionApplicationId=275&paProjectId=" + oapagecontext.getTransactionValue("paProjectId") + "&paAssignmentId=" + oapagecontext.getTransactionValue("wfOutAssignmentId") + "&paCalledPage=" + s17 + "&addBreadCrumb=RP";
Debug.log(oapagecontext, this, "UPDATE_DETAILS: URL: " + s19, 3);
oapagecontext.redirectImmediately(s19, false, "RP");
if(s.equals("Staffed") || s.equals("Admin") || s.equals("Project"))
String s18 = (String)oapagecontext.getTransactionValue("wfOutResourceId");
String s20 = (String)oapagecontext.getTransactionValue("wfOutAssignmentId");
Debug.log(oapagecontext, this, "outResourceId " + s18, 3);
Debug.log(oapagecontext, this, "outAssignmentId " + s20, 3);
if("SUBMIT_APPRVL".equals(oapagecontext.getParameter("AddAsgmtApplyAction")))
if(s.equals("Staffed"))
oapagecontext.redirectImmediately("OA.jsp?akRegionCode=PA_SUBMIT_ASMT_APR_LAYOUT&akRegionApplicationId=275&paAsgmtId=" + s20 + "&paResourceId=" + s18 + "&paProjectId=" + oapagecontext.getTransactionValue("paProjectId") + "&paAsgmtAprStatus=ASGMT_APPRVL_WORKING&paAssignmentType=" + s + "&paCallingPage=AddAssignment", false, "RP");
return;
oapagecontext.redirectImmediately("OA.jsp?akRegionCode=PA_SUBMIT_ASMT_APR_LAYOUT&akRegionApplicationId=275&paAsgmtId=" + s20 + "&paResourceId=" + s18 + "&paAsgmtAprStatus=ASGMT_APPRVL_WORKING&paAssignmentType=" + s + "&paCallingPage=AddAssignment", false, "RP");Hi Rani,
As soon as the transaction is commited the methods in the VORowImpl Class are called.
You can check in the VORowImpl class and search for the log messages.
Thanks,
Gaurav -
Help needed in understanding the concept of hierarchical queries
I really need help in this matter. I have a flafile containing about 4000 rows. It is from my supplier, it's structure is as follows:
create table Flatfile
(Pgroup varchar2(30),
Pclass varchar2(30),
Manufacturer varchar2(30),
Article varchar2(30),
Price Number(6,2));
Insert into Flatfile Values
('Application Software','Database Software','Oracle','Oracle 10G',115);
Insert into Flatfile Values
('Application Software','Database Software','Microsoft','MS SQL Server 2000',200);
Insert into Flatfile Values
('Application Software','Spreadsheet Software','Microsoft','Excel',100);
Insert into Flatfile Values
('Monitor','15"','Acer','Acer 15"" TFT superscreen',199);
Insert into Flatfile Values
('Monitor','15"','Sony','Sony R1500 flat',225);
Insert into Flatfile Values
('Monitor','17"','Philips','Philips Flatscreen',250);
Insert into Flatfile Values
('Monitor','19"','Viewsonic','Viewsonic PLasma Monitor',275);
Insert into Flatfile Values
('Processor','AMD','AMD','FX-55',600);
Insert into Flatfile Values
('Processor','Intel','Intel','P4 3 GHZ',399);
My goal is to make a hierarchical query with the start with and connect by clauses. From what I have read is that I need to normalize the data of the flatfile.
How do I achieve a table which I can query so that the query will represent the hierarchy that exists. Namely
Pgroup
++Pclasse
Application Software
++Database Software
++Spreadsheet Software
So a 2-level hierarchy. I'd like to understand this simple concept first. I built on the knowledge that I gain. So the questions are:
1.What do I need to do to make the table so that I can use a hierarchical query on it?
2. How should the query syntax be?
3. Is it also possible to get the data in the hierarchical query sorted asec?
I would only like to use the simple structures of the start with and connect by clauses first. I've read there are some new additions to 10G. The problem with the examples used by the tutorials is that the tables are already made so that they are suitable for hierarchical queries. I hope to understand it by this example. And take it a step further.
Sincerely,
PetePrimarily hierarchy query serves to process tree-like structures which RDBMS simulates using through parent-child relation, often in a single table (see famoust
EMP table where employee can have the manager who is an employee at the same time).
In your case it could look like:
SQL> select pgroup, pclass from flatfile;
PGROUP PCLASS
Application Software Database Software
Application Software Database Software
Application Software Spreadsheet Software
Monitor 15"
Monitor 15"
Monitor 17"
Monitor 19"
Processor AMD
Processor Intel
Application Software
Monitor
Processor
12 rows selected.
SQL> select decode(level,1,pclass,' ' || pclass), Manufacturer from flatfile
2 start with pgroup is null
3 connect by prior pclass = pgroup
4 /
DECODE(LEVEL,1,PCLASS,''||PCLASS MANUFACTURER
Application Software
Database Software Oracle
Database Software Microsoft
Spreadsheet Software Microsoft
Monitor
15" Acer
15" Sony
17" Philips
19" Viewsonic
Processor
AMD AMD
Intel Intel
12 rows selected.The hierarchy syntax is described completely in the documentation including
LEVEL and PRIOR keywords.
As for the ordering question you can use siblings ordering:
SQL> select decode(level,1,pclass,' ' || pclass), Manufacturer from flatfile
2 start with pgroup is null
3 connect by prior pclass = pgroup
4 order siblings by 1 desc
5 /
DECODE(LEVEL,1,PCLASS,''||PCLASS MANUFACTURER
Processor
Intel Intel
AMD AMD
Monitor
19" Viewsonic
17" Philips
15" Acer
15" Sony
Application Software
Spreadsheet Software Microsoft
Database Software Oracle
Database Software Microsoft
12 rows selected.Rgds. -
Help needed in understanding the Java code.
Hi All,
I have recently started learning the Java language. I came across this example and had a problem in understanding the output of the program. I could follow that if the continue statement is present in the below program the output is "Found 9 p's in the string" . But if the continue statement is removed I could not understand why the output would be "Found 35 p's in the string" .Is it because of the spaces and characters other than p... (eter ier icked a eck of ickled eers)
Example-----------------------
The continue statement skips the current iteration of a for, while , or do-while loop. The unlabeled form skips to the end of the innermost loop's body and evaluates the boolean expression that controls the loop. The following program, ContinueDemo , steps through a String, counting the occurences of the letter "p". If the current character is not a p, the continue statement skips the rest of the loop and proceeds to the next character. If it is a "p", the program increments the letter count.
class ContinueDemo {
public static void main(String[] args) {
String searchMe
= "peter piper picked a " +
"peck of pickled peppers";
int max = searchMe.length();
int numPs = 0;
for (int i = 0; i < max; i++) {
// interested only in p's
if (searchMe.charAt(i) != 'p')
continue;
// process p's
numPs++;
System.out.println("Found " +
numPs + " p's in the string.");
Here is the output of this program:
Found 9 p's in the string.
To see this effect more clearly, try removing the continue statement and recompiling. When you run the program again, the count will be wrong, saying that it found 35 p's instead of 9.The answer is already in your example - "The unlabeled form skips to the end of the innermost loop's body and evaluates the boolean expression that controls the loop."
It unloads the current loop iteration when condition is matching. Loop is again starting from boolean expression inside loop declaration.
Java Programming - java forum -
Please help me in understanding the EDIFACT D96A format for INVOICE
Hi,
Im doing an INVOICE02 IDOC to EDIFACT D96A INVOIC scenario. Im new to EDI.
Pls Pls Pls Pls kindly help me in understanding the following EDIFACT D96A file.
UNBUNOA:35410033000055:145400110000009:14070612:085511137INV96A+EANCOM1'
UNH1INVOIC:D:96A:UN:EAN008'
BGM3805010237529+9'
DTM+137:200706120000:203'
DTM+35:20070612:102'
DTM+454:20070612:102'
RFF+ON:32210'
DTM+171:20070612:102'
RFF+DQ:000030585715'
DTM+171:20070612:102'
NADSU5410148000001::9+BVBA Unilever Belgium SPRLBl.De L?'Humanité 292 292Bruxelles1190BE'
RFF+VA:BE438390312'
RFF+ARA:0438390312'
NADBY5400110000009::9+D.L.L.RUE OSSEGHEM 53-MOLENBEEKMOLENBEEK-SAINT-JEAN1080BE'
NADDP5400110000009::9+D.L.L.RUE OSSEGHEM 53-MOLENBEEKMOLENBEEK-SAINT-JEAN1080BE'
NADIV5400110000009::9+DELHAIZE FRS. CENTRALESRUE OSSEGHEM , 53BRUSSEL-MOLENBEEK1080BE'
RFF+VA:BE402206045'
RFF+ARA:0402206045'
CUX+2:EUR:4'
LIN10+8000920900987:EN'
PIA1000000000019009801:SA'
IMDF+IN:::IGLO POELEE LEGUMES CHAMPIGNONS 6X8'
QTY+47:81'
QTY+46:81'
MOA+203:1584.4'
PRI+AAA:19.56'
PRI+AAB:21.24'
TAX7VAT+++:::6.000'
MOA+125:1584.4'
ALCA++1'
PCD+1:0:1'
ALCA++1'
PCD+1:1.97:1'
ALCA++1'
PCD+1:1.96:1'
LIN20+5410148126459:EN'
PIA1000000000011264501:SA'
IMDF+IN:::Epinards hachis en portions '
QTY+47:112'
QTY+46:112'
MOA+203:1061.01'
PRI+AAA:9.47'
PRI+AAB:10.96'
TAX7VAT+++:::6.000'
MOA+125:1061.01'
ALCA++1'
PCD+1:0:1'
ALCA++1'
PCD+1:1.97:1'
ALCA++1'
PCD+1:1.96:1'
LIN40+5410148013452:EN'
PIA1000000000010134500:SA'
IMDF+IN:::15 Fish Sticks Colin d?'Alaska '
QTY+47:256'
QTY+46:256'
MOA+203:4937.63'
PRI+AAA:19.29'
PRI+AAB:20.16'
TAX7VAT+++:::6.000'
MOA+125:4937.63'
ALCA++1'
PCD+1:0:1'
ALCA++1'
PCD+1:1.97:1'
LIN50+5414807999958:EN'
PIA1000000000019999501:SA'
IMDF+IN:::Iglo Poisson Pané Epinards 7X400g'
QTY+47:180'
QTY+46:180'
MOA+203:4160.31'
PRI+AAA:23.11'
PRI+AAB:24.08'
TAX7VAT+++:::6.000'
MOA+125:4160.31'
ALCA++1'
PCD+1:0:1'
ALCA++1'
PCD+1:1.97:1'
LIN60+5410148120952:EN'
PIA1000000000011209501:SA'
IMDF+IN:::Epinards Crhme en Portions '
QTY+47:112'
QTY+46:112'
MOA+203:1594.69'
PRI+AAA:14.24'
PRI+AAB:15.92'
TAX7VAT+++:::6.000'
MOA+125:1594.69'
ALCA++1'
PCD+1:0:1'
ALCA++1'
PCD+1:1.97:1'
ALCA++1'
PCD+1:1.96:1'
LIN70+5410148124158:EN'
PIA1000000000011241503:SA'
IMDF+IN:::EPINARDS HACHES EN PORTIONS 450G'
QTY+47:144'
QTY+46:144'
MOA+203:938.01'
PRI+AAA:6.51'
PRI+AAB:7.44'
TAX7VAT+++:::6.000'
MOA+125:938.01'
ALCA++1'
PCD+1:0:1'
ALCA++1'
PCD+1:1.97:1'
ALCA++1'
PCD+1:1.96:1'
LIN120+5410148016729:EN'
PIA1000000000010167201:SA'
IMDF+IN:::Macaroni Fromage/Jambon '
QTY+47:260'
QTY+46:260'
MOA+203:4337.55'
PRI+AAA:16.68'
PRI+AAB:17.58'
TAX7VAT+++:::6.000'
MOA+125:4337.55'
ALCA++1'
PCD+1:0:1'
ALCA++1'
PCD+1:1.97:1'
LIN130+5410148441255:EN'
PIA1000000000014412503:SA'
IMDF+IN:::CHOUX ROUGES AUX POMMES 450G'
QTY+47:144'
QTY+46:144'
MOA+203:1756.99'
PRI+AAA:12.2'
PRI+AAB:13.36'
TAX7VAT+++:::6.000'
MOA+125:1756.99'
ALCA++1'
PCD+1:0:1'
ALCA++1'
PCD+1:1.97:1'
ALCA++1'
PCD+1:1.96:1'
LIN140+5410148017702:EN'
PIA1000000000010177001:SA'
IMDF+IN:::Frit?'Kot 1'
QTY+47:60'
QTY+46:60'
MOA+203:1102.6'
PRI+AAA:18.38'
PRI+AAB:22'
TAX7VAT+++:::6.000'
MOA+125:1102.6'
ALCA++1'
PCD+1:0:1'
ALCA++1'
PCD+1:1.97:1'
ALCA++1'
PCD+1:4.9:1'
LIN180+8000920801796:EN'
PIA1000000000018017901:SA'
IMDF+IN:::EPINARDS EN BRANCHES 10 X 450'
QTY+47:190'
QTY+46:190'
MOA+203:2204.2'
PRI+AAA:11.6'
PRI+AAB:12.9'
TAX7VAT+++:::6.000'
MOA+125:2204.2'
ALCA++1'
PCD+1:0:1'
ALCA++1'
PCD+1:1.97:1'
ALCA++1'
PCD+1:1.96:1'
LIN200+5410148014268:EN'
PIA1000000000010142602:SA'
IMDF+IN:::PETITS POIS EXTRA FINS 450G'
QTY+47:238'
QTY+46:238'
MOA+203:1999.6'
PRI+AAA:8.4'
PRI+AAB:9.24'
TAX7VAT+++:::6.000'
MOA+125:1999.6'
ALCA++1'
PCD+1:0:1'
ALCA++1'
PCD+1:1.97:1'
ALCA++1'
PCD+1:1.96:1'
LIN230+8000920807248:EN'
PIA1000000000018072403:SA'
IMDF+IN:::IGLO POUL ET PENNE AUX LEG.SOLEI. 6'
QTY+47:99'
QTY+46:99'
MOA+203:1727.54'
PRI+AAA:17.45'
PRI+AAB:18.3'
TAX7VAT+++:::6.000'
MOA+125:1727.54'
ALCA++1'
PCD+1:0:1'
ALCA++1'
PCD+1:1.97:1'
UNS+S'
CNT+2:12'
MOA+124:1644.27'
MOA+86:29048.8'
MOA+79:27404.53'
MOA+125:27404.53'
TAX7VAT++:::6.000S'
MOA+125:27404.50'
MOA+124:1644.27'
UNT2121'
UNZ111137'
Advance appreciations,
Ram.Its very simple:
UNB-segment : Interchange Header
S001 SYNTAX IDENTIFIER
0001 Syntax Identifier UNOA
0002 Syntax version number 2
S002 INTERCHANGE RECIPIENT
0004 Sender Identification 8711382000091 (= GLN Code Tilburg)
0007 Identification Code Qualifier 14
S003 INTERCHANGE SENDER
0004 Recipient Identification 8711700400008(= GLN Code Unilever)
0007 Identification Code Qualifier 14
S004 DATE/TIME OF PREPARATION
0017 Date YYMMDD
0019 Time HHMM
0020 INTERCHANGE CTRL REF. Unique message reference number
0026 APPLICATION REFERENCE WMS0330
UNH-segment: Message header
0062 MESSAGE REFERENCE NUMBER Unique sequence numbe within UNB
S009 MESSAGE IDENTIFIER
0065 Message type identifier INVRPT
0052 Message type version number D
0054 Message type release number 96A
0051 Controlling agency EN
0057 Association assigned code EAN004
BGM-segment: Beginning of message
C002 DOCUMENT/MESSAGE NAME
1001 Document/message name, coded 35 (= Inventory report)
3055 Code list responsible agency, coded 9 (= EAN)
1004 DOCUMENT/MESSAGE NUMBER Unique Number assigned by CS (= Date/Time CCYYMMDDHHMMSS)
1225 MESSAGE FUNCTION, CODED 9 (= Original)
DTM-segment: Date/time/period
C507 DATE/TIME/PERIOD
2005 Date/time/period qualifier 137 (=Document/message date/time)
2380 Date/time/period Document date
2379 Date/time/period format qualifier 102 (= CCYYMMDD)
RFF-segment: Reference
C506 REFERENCE
1153 Reference code qualifier ON (= Order number)
1154 Reference identifier Agreement number
NAD-segment: Name and address
3035 PARTY QUALIFIER GY (= Inventory reporting party = CS)
GM (= Inventory controller = XYZ)
C082 PARTY IDENTIFICATION DETAILS
3039 Party id. identification GLN code
3055 Code list responsible agency, coded 9 (= EAN)
LIN-segment: Line item
1082 LINE ITEM NUMBER Unique Line Number
C212 ITEM NUMBER IDENTIFICATION
7140 Item number EAN Material code
7143 Item number type, coded EN (= EAN)
PIA-segment: Additional Product Information
4347 PRODUCT ID FUNCTION IDENTIFIER "1"(= Additional Information)
C212 ITEM NUMBER IDENTIFICATION
7140 Item number Promotional Variant
7143 Item number type, coded "PV (= Promotional variant)
QTY-segment: Quantity
C186 QUANTITY DETAILS
6063 Quantity qualifier 12 (= Despatch quantity)
6060 Quantity Number of stock units
PRI: Represent price
TAX: represent tax.
Try to go to the below website where you will able to get the information regarding all the sgements and elements of Invocie.
http://www.edifactory.de/messages.php?s=D96A
Also refer the below link for EDI understanding:
http://www.gxs.com/pdfs/Tutorial/Tutor_EDIFACT_GXS.pdf
Thnx
Chirag Gohil -
Help needed to understand business process irrespective of SAP
Hello all,
I am an engineer with specialization in electronics and telecommunication. The topic of RFID is thus fascinating for me hence,I have been reading SAP AII for some time now. The components of RFID like tags, readers and communication between them is known to me upto some extend but the business process that SAP AII supports/ implements/ automates are new to me because of which I miss the big picture of SAP AII.
The material I have been reading on SAP AII describes many such process e.g. goods issue, goods return, slap and Ship, logistic process etc. I find it difficult to comprehend these business processes as I think they are described mainly in jargons/ terms (jargon for me) like "delivery processing", "delivery document", "Shipping document", "handling unit", "outbound and inbound process", "goods posting" and numerous similar terms. Moreover I think the explanation is SAP specific.
I feel I should take a top down approach to understand SAP AII and for this I first need to understand the business process in generic/ standard terms. Once they are clear I guess I would be able to understand SAP RFID solution.
I request you all to guide me. Am I taking the right approach? If yes please help me understand the basic business process. Pointers to some good douments or any other resource explaining standard business process will definately help.
Thank YouHi Gaurav,
You are very correct that being a technical person you find difficulty in understanding jargon terms of SAP.
Let me explain you the scenario:
There are two sides to SAP
1) Functional - Understanding of Business Processes
Here there are two parts:
a) Business Process With Respect To SAP AII - These processes generally deals with RFID technology that happens in warehouses, disribution centers and are close to technological world. These deal only with SAP AII
b) Business Process With Respect To SAP R/3 - These processes deals with SAP AII when integrated with backend systems like SAP R/3, SAP WM or other systems. These talk about the end to end scenario of RFID. Like you pointed out, delivery processing, etc.
Understanding of Core that is part a above and a bit basics about b will be very helpful.
2) Technical - Understanding SAP AII
Here also two parts are there:
a) Understanding RFID as a technology with SAP AII - Deals with understaning technological viewpoints on RFID and mapping it to SAP AII. Example Devices, Tags, Device Controllers, Middlewares and their representation in SAP AII.
Most important is above part
b) Understanding Technological part of SAP itself - For example, ABAP, BAPI, BADI etc.
So this is how it works. You are going very correct and follow above things.
Please revert if you have any specific questions.
Thnks -
Help needed to optimize the query
Help needed to optimize the query:
The requirement is to select the record with max eff_date from HIST_TBL and that max eff_date should be > = '01-Jan-2007'.
This is having high cost and taking around 15mins to execute.
Can anyone help to fine-tune this??
SELECT c.H_SEC,
c.S_PAID,
c.H_PAID,
table_c.EFF_DATE
FROM MTCH_TBL c
LEFT OUTER JOIN
(SELECT b.SEC_ALIAS,
b.EFF_DATE,
b.INSTANCE
FROM HIST_TBL b
WHERE b.EFF_DATE =
(SELECT MAX (b2.EFF_DATE)
FROM HIST_TBL b2
WHERE b.SEC_ALIAS = b2.SEC_ALIAS
AND b.INSTANCE =
b2.INSTANCE
AND b2.EFF_DATE >= '01-Jan-2007')
OR b.EFF_DATE IS NULL) table_c
ON table_c.SEC_ALIAS=c.H_SEC
AND table_c.INSTANCE = 100;To start with, I would avoid scanning HIST_TBL twice.
Try this
select c.h_sec
, c.s_paid
, c.h_paid
, table_c.eff_date
from mtch_tbl c
left
join (
select sec_alias
, eff_date
, instance
from (
select sec_alias
, eff_date
, instance
, max(eff_date) over(partition by sec_alias, instance) max_eff_date
from hist_tbl b
where eff_date >= to_date('01-jan-2007', 'dd-mon-yyyy')
or eff_date is null
where eff_date = max_eff_date
or eff_date is null
) table_c
on table_c.sec_alias = c.h_sec
and table_c.instance = 100; -
Help required in understanding the flow of control in working with EJB 3.0
*1. Can anyone help me in understanding the flow after getting an object of InitialContext in using Stateless/Stateful in EJB 3.0 from client i.e. what we are getting in the step Object ref=jndiContext.lookup("CalculateBean/Remote) .*
*2. What is the use of INITIAL_CONTEXT_FACTORY*
*3. PROVIDER_URL*
*4. Java.naimg.factory.url.pkgs*
*5. why org.jboss.naming and org.jnp.interfaces separated by semi colon.*
*6. Why we dont require INITIAL_CONTEXT_FACTORY, PROVIDER_URL and Java.naming.factory.url.pkgs if the client is a web client.*
Properties p=new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
p.put(Context.PROVIDER_URL,"jnp://localhost:1099");
p.put("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
Context jndiContext = new InitialContext(p);
Object ref = jndiContext.lookup("CalculateBean/Remote");
Calculate c = (Calculate)ref;
int sum=c.add(3,4);
System.out.println(sum);
Thanx in advance........Annotations can also be processed at run time using the core reflection API (java.lang.Class & java.lang.reflect.*), so you might want to explore down that path. I have no idea how JBoss actually does it, but annotation processing at build time and core reflection at runtime are the two most obvious possibilities.
Bruce -
I want to check the main diffrence in Pop up block enabled and disabled.But,i don't get any difference.Would u please help me to understand the difference using one practical example of website
Here's two popup test sites.
http://www.kephyr.com/popupkillertest/test/index.html
http://www.popuptest.com/ -
Need to understand the relation between ManualResetEvent and thread
please help me to understand the below code
what is resetEvent.Set() and WaitOne() ? what it does ?
var resetEvent = new ManualResetEvent(false);
ThreadPool.QueueUserWorkItem(
arg =>
DoWork();
resetEvent.Set();
resetEvent.WaitOne();
again help me to understand the below code
var events = new List<ManualResetEvent>();
foreach(var job in jobs)
var resetEvent = new ManualResetEvent(false);
ThreadPool.QueueUserWorkItem(
arg =>
DoWork(job);
resetEvent.Set();
events.Add(resetEvent);
WaitHandle.WaitAll(events.ToArray());
why this line WaitHandle.WaitAll(events.ToArray()); is required ?
why adding ManualResetEvent instance to list ?
looking for discussion. thanksWaitOne() will cause the current (main) thread to wait until the thread pool thread has called the Set() method. If you don't call the WaitOne() method, the code line below ThreadPool.QueueUserWorkItem(...) will get executed before the delegate that you
pass do the ThreadPool.QueueUserWorkItem method has actually finished its execution because the threads are being executed simultaneously:
var resetEvent = new ManualResetEvent(false);
ThreadPool.QueueUserWorkItem(
arg =>
//this will be executed simultaneously on thread B
Thread.Sleep(10000);
//tell thread A to continue
resetEvent.Set();
//thread A waits here until thread B calls the Set() method...
resetEvent.WaitOne();
string s = "abc"; //this line won't get executed until thread B has called the Set() method provided that the WaitOne() method is called by thread A above.
>>why this line WaitHandle.WaitAll(events.ToArray()); is required ?
It causes the main thread to wait until the Set method of all ManualResetEvent objects in the events list has been called. Othwerwise the execution of the main thread would continue immediately after the foreach loop has been executed. By this time the DoWork
method of all jobs has not yet been completed because they are being executed on another thread.
WaitHandle.WaitAll(events.ToArray());
string s = "abc"; //this line won't get executed until all the Set() method of all ManualResetEvent objects in events has been called
>>why adding ManualResetEvent instance to list ?
Because you (appearantly) want to wait for all objects in the list, i.e. you want to wait for the DoWork method to complete for all jobs before you continue the execution of the main thread (and go on to assign the string s to the value "abc"
in the above example).
Hope that helps.
Please remember to close your threads by marking helpful posts as answer then start a new thread if you have a new question. Please don't ask several questions in the same thread. -
Need to Understand the Packet Flow
Dear Friend,
I need to understand the packet flow of the below diagram.
I have configured MPLS on R2,R3 and R4. And IBGP is configured on R2 and R4. Now I am able to reach from R1 to R5's Loopback address. I need to understand the packect flow from R1 to R5 like If I ping from R1's Loopback to R5's Loopback address then Source IP is 1.1.1.1 and destination IP is 5.5.5.5. What will be the packet structure at R2, R3,R4...??????????
Please explain in details......Me really confused as R4 has not route about 5.5.5.5 also 1.1.1.1...How it forwards the packets??????Sanjib
So R2 and R4 are PE devices and R3 is a P device ? And you are not doing MPLS VPNs, just normal MPLS ?
If so R4 must have a route to 5.5.5.5. Did you mean R3 does not have a route ?
With MPLS any P device only knows how to get to other P devices and PE devices. It does not know about any networks outside the MPLS network. The PE devices have routes to any external networks connected to them and know how to get to P and other PE devices.
Note that in terms of PE/P reachability the routing/LDP information has already been exchanged and an MPLS forwarding table built. So for reachability between PE/P routers (ie. not outside the MPLS network) route lookup do not need to be performed, it is simply a matter of removing and adding labels.
So assuming you are not using MPLS VPNs and that MPLS labels have been exchanged between all P and PE routers -
R1 pings 5.5.5.5
1) R1 does a route lookup for 5.5.5.5 and sends it to R2.
2) R2 is a PE device. It does a route lookup for 5.5.5.5 and sees R4 as the next hop (this route has been exchanged via MP-BGP).
3) R2 then need to send the packet to R4. To do this it looks in it's MPLS forwarding table to see how to get to R4. The MPLS forwarding table tells it which label to attach to the packet. It adds this label and sends the packet out of it's interface to R3.
3) R3 is a P device. It does not need to do a route lookup for 5.5.5.5. It simply looks at the incoming MPLS label and consults it's MPLS forwarding table. It will have an entry in it's table saying that an incoming packet with an MPLS label of x should be sent out with an MPLS label of y. It changes the label and sends it out to R4.
4) R4 receives the packet, removes the label, does an IP lookup for 5.5.5.5 and sends it to R5.
Note that actually R3 might not add a label as there is something called Penultimate Hop Popping where if the net hop from the P router is a PE router it sends the packet without a label to save extra processing on the PE router. If you had multiple P routers only the last P router before the PE router would do PHP.
The key thing to understand is that the P devices don't do route lookups when forwarding data. They simply switch labels. Whereas the PE devices do need to do route lookups for destinations outside the MPLS network.
Jon -
Help needed regarding AE SDK compiled/linked out file extension
Hi,
I am new to the AE SDK plug-in build, and to the Forum.
How to select .aex file format extension for the compiler and linker single file output?
My system is:
Adobe CS 5
Windows 7 with 64-bit processing
Visual Studio 2008 SP1
I am stuck and need help.I got a direct answer - it is the concept of linking to a library (.dll) and not to an executable (.exe).
This is encouraging, thank you. -
Help needed in overriding the finalize() method!
Hi
I need some help in overwriting the finalize() method.
I have a program, but at certain points, i would like to "kill" a particular object.
I figured that the only way to do that is to make that object's class override the finalize method, and call it when i need to kill the object.
Once that is done, i would call the garbage collector gc() to hopefully dispose of it.
Please assist me?
Thanks
RegardsTo, as you put it, kill an object, just null it. This
will be an indication for the garbage collector to
collect the object. In the finalizer, you marely null
all fields in the class. Like this:
public class DummyClass
String string = "This is a string";
Object object = new Boolean(true);
public void finalize() throws Throwable
super.finalize();
string = null;
object = null;
public static void main(String[] args)
//Create a new object, i.e allocate an
te an instance.
DummyClass cls = new DummyClass();
//Null the reference
cls = null;
This is a pointless exercise. If an object is being finalized, then all the references it contains are about to cease being relevant anyway, so there's no purpose to be served in setting them to null.
All that clearing a reference to an object does is to clear the reference. Whether the object is subsequently finalized depends on whether the object has become unreachable.
Directly calling finalize is permitted, but doesn't usually serve any purpose. In particular, it does not cause the object to be released. Further, calling the finalize method does not consitute finalization of the object. Finalization occurs when the method is called as a consequence of a garbage collector action.
If a variable contains a reference to an object (say a table), and you want a new table instead, then create a new table object, and assign its reference to the variable. Assuming that the variable was the only place that the old table's reference was stored, the old table will, sooner or later, get finalized and collected.
Sylvia. -
Help needed in using the appropriate Trigger
I have a master detail form.DEPT block is the master block and Employee is Detail block.I need to display the message when user is
trying to enter the ENAME field in the Employee block(detail) when the DEPTNO in the DEPT block(master) is not equal to 10.
Messgae should be displayed when user trying to type the value but not when the user navigates into the ENAME text field.
What is the appropriate trigger that is useful here?
Thanks.
GSRIf the DEPT block is table based in the block's POST-QUERY trigger you can simply set
if :DEPT.DEPTNO !=10 then
set_item_proerty('DEPT.ENAME', insert_allowed, property_false);
set_item_proerty('DEPT.ENAME', update_allowed, property_false);
else
set_item_proerty('DEPT.ENAME', insert_allowed, property_true);
set_item_proerty('DEPT.ENAME', update_allowed, property_true);
end if;if the block is a non-database one then you can put that code in EMPNAME's WHEN-VALIDATE-ITEM trigger
Luca
Don't forget to mark the answer as helpful/correct if it is. please. -
Help needed in using the DocCheck utility
Hi
Can somebody help me to use the DocCheck utility.I need to check that all the java files have the required javadoc tags and they are correct.
I have downloaded the zip file and I have been giving the following commands
c:\javadoc -doclet com.sun.tools.doclets.doccheck.DocCheck -docletpath c:\svk\jdk1.2.2\bin\doccheck1.2b1\lib\doccheck.jar -sourcepath<full path with the file name>
But I get the following error message : No package or class specified.
I also tried giving the following command:
D:\SegaSource\sega\src\com\sega\account>javadoc -doclet com.sun.tools.doclets.do
ccheck.DocCheck -docletpath d:\jdk1.3\doccheck1.2b1\lib\doccheck.jar User.java
But I get the following message:
Loading source file User.java...
Constructing Javadoc information...
javadoc: warning - Import not found: com.sega.account.address.Address - ignoring
javadoc: warning - Import not found: com.sega.account.icon.Icon - ignoring!
javadoc: warning - Import not found: com.sega.common.DateUtil - ignoring!
javadoc: warning - Import not found: atg.nucleus.GenericService - ignoring!
javadoc: warning - Cannot find class com.sega.account.icon.Icon
javadoc: warning - Cannot find class com.sega.account.address.Address
javadoc: warning - Cannot find class com.sega.account.MasterManager
7 warnings
please help
Thanks
SVKI have never ran the DocCheck from the command prompt, so I really don't know how to do it, but I do run it succesfully using ant (build tool from apache - jakarta, if you use tomcat you already have it installed).
So.. if you do use ant.. this will help:
<target name="doccheck" depends="prepare">
<javadoc
packagenames="${packages}"
destdir="${doccheck.home}"
doclet="com.sun.tools.doclets.doccheck.DocCheck"
docletpath="${doccheck.path}" >
<classpath refid="project.classpath"/>
<sourcepath refid="project.classpath"/>
</javadoc>
</target>If you don't use it.. I guess I was of no help, sorry.
Ylan
Maybe you are looking for
-
Regular Expressions Problem!!!!!!!!! Please help!
HI, I need to extract the lines of a aperticular file without the comments. I have a code to catch the comments, But don't know how to how to get the lines without the matching comment lines This is the RegEx to catch the line comments. ((?:/\\*(?:[^
-
Reporting Score in Solo Learning LMS
I have read through the message thread and see that there are other folks having difficulty getting quiz scores to report on various LMS platforms. Does anyone have suggestions on how to get the score to report from a Captivate3 SCORM 1.2 course to t
-
Backup error after kernel patch upgrade
Hi. I have a backup problem after the kernel patch upgrade. I have SAP R3 4.6C on HPUX11.0 with an Oracle 8.17 database. I have upgraded kernel patch from 1655 to 2337. Afterward, I am getting following backup error: BR280I Time stamp 2007-11-06 09.
-
Need to have the delete key in phone dialpad at the bottom
WIth the new os 7, my iphone 5 phone dialpad's backspace or delete was moved from the bottom to the top. This makes it very difficult to use the phone with one hand, esp when you make a typo. I have not been able to move my right thumb all the way t
-
Using another language (German)...
How do I get the umlauts to appear over a, u & o in German? I live in Germany and want to type email to friends in German in Mail. I selected the German flag in the bar up top, but still cannot figure out how to get the umlauts to appear (the little