From 23c7660aa82afa9afaac799b1633e3fb5e2ba286 Mon Sep 17 00:00:00 2001 From: xiongcz Date: Fri, 9 May 2025 13:05:51 +0800 Subject: [PATCH] =?UTF-8?q?feat(create-temp-drawings):=20=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E4=B8=B4=E6=97=B6=E5=9B=BE=E7=BA=B8=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增创建临时图纸的对话框和相关逻辑 - 实现从首选项中读取属性配置并动态生成表单 - 添加 LOV 属性处理和继承属性处理功能 - 完成对象创建和属性赋值 --- .../dialogs/CreateTempDrawingDialog.java | 523 +++++++++++++++++- .../handlers/CreateTempDrawingHandler.java | 2 + 2 files changed, 502 insertions(+), 23 deletions(-) diff --git a/src/cn/net/connor/createTempDrawings/dialogs/CreateTempDrawingDialog.java b/src/cn/net/connor/createTempDrawings/dialogs/CreateTempDrawingDialog.java index 1e76f1a..03ca358 100644 --- a/src/cn/net/connor/createTempDrawings/dialogs/CreateTempDrawingDialog.java +++ b/src/cn/net/connor/createTempDrawings/dialogs/CreateTempDrawingDialog.java @@ -15,22 +15,49 @@ import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; +import javax.mail.Folder; import javax.swing.*; +import org.apache.log4j.LogManager; +import org.apache.log4j.Logger; + import com.teamcenter.rac.aif.AbstractAIFApplication; import com.teamcenter.rac.aif.AbstractAIFDialog; import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent; +import com.teamcenter.rac.kernel.ListOfValuesInfo; +import com.teamcenter.rac.kernel.TCComponent; import com.teamcenter.rac.kernel.TCComponentFolder; +import com.teamcenter.rac.kernel.TCComponentForm; +import com.teamcenter.rac.kernel.TCComponentItem; import com.teamcenter.rac.kernel.TCComponentItemRevision; +import com.teamcenter.rac.kernel.TCComponentListOfValues; import com.teamcenter.rac.kernel.TCException; import com.teamcenter.rac.kernel.TCPreferenceService; +import com.teamcenter.rac.kernel.TCProperty; import com.teamcenter.rac.kernel.TCSession; import com.teamcenter.rac.util.DateButton; import com.teamcenter.rac.util.MessageBox; import com.teamcenter.rac.util.PropertyLayout; import com.teamcenter.rac.util.UIUtilities; +import com.teamcenter.schemas.soa._2006_03.exceptions.ServiceException; +import com.teamcenter.services.rac.core.DataManagementService; +// +//import com.teamcenter.services.rac.core.DataManagementService; +//import com.teamcenter.services.rac.core._2008_06.DataManagement.CreateIn; +//import com.teamcenter.services.rac.core._2008_06.DataManagement.CreateInput; +//import com.teamcenter.services.rac.core._2008_06.DataManagement.CreateOut; +//import com.teamcenter.services.rac.core._2008_06.DataManagement.CreateResponse; +import com.teamcenter.services.rac.core._2008_06.DataManagement.CreateIn; +import com.teamcenter.services.rac.core._2008_06.DataManagement.CreateInput; +import com.teamcenter.services.rac.core._2008_06.DataManagement.CreateOut; +import com.teamcenter.services.rac.core._2008_06.DataManagement.CreateResponse; + +import cn.net.connor.createTempDrawings.pojo.LovProperty; +import cn.net.connor.createTempDrawings.utils.TCLOVUtil; public class CreateTempDrawingDialog extends JFrame implements ActionListener{ + private static final Logger logger = LogManager.getLogger(CreateTempDrawingDialog.class); + private AbstractAIFApplication application; private TCSession tcSession ; private InterfaceAIFComponent selectComponent; @@ -51,11 +78,22 @@ public class CreateTempDrawingDialog extends JFrame implements ActionListener{ private JButton buildButton; // ڸʽ private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + /** + * ѡеĶͣȡͶӦѡõϢ + * 磺*=Item.object_name=string + */ + private List preferencePropList = new ArrayList<>(); /** * + * ʾĿ */ private Map propComponentMap = new HashMap<>(); + + /** + * lovԶ + */ + private List lovPropertyList = new ArrayList<>(); /** @@ -64,12 +102,14 @@ public class CreateTempDrawingDialog extends JFrame implements ActionListener{ * @param selectComponent */ public CreateTempDrawingDialog(AbstractAIFApplication application, InterfaceAIFComponent selectComponent) { + logger.info("haihaihai"); try { this.application = application; this.tcSession = (TCSession) this.application.getSession(); this.selectComponent = selectComponent; System.out.println("ʼشʱͼֽ壡"); + logger.info("ʼشʱͼֽ壡"); List list1 = getPreferenceInfos("SB6_Create_LS_Design"); if (list1.isEmpty() || list1.size() <= 0) { MessageBox.post("ȡѡSB6_Create_LS_DesignϢʧܣǷȷ" , "ʾ", MessageBox.INFORMATION); @@ -167,6 +207,378 @@ public class CreateTempDrawingDialog extends JFrame implements ActionListener{ this.setVisible(true); } + + public String getSourceValue(String[] split) throws TCException { + String value = null; + if (split.length == 4) {//ϢУڼ̳Դ + String propSource = split[3]; + String[] sourceArr = propSource.split("\\."); + if (sourceArr.length > 0) { + String sourceLocation = sourceArr[0]; + String sourceTrueName = sourceArr[1]; + + + if (this.selectComponent instanceof TCComponentItemRevision) { + TCComponentItemRevision itemRevision = (TCComponentItemRevision) selectComponent; + TCComponentItem item = itemRevision.getItem(); + if (sourceLocation.equals("Item")) { + value = item.getStringProperty(sourceTrueName); + }else if (sourceLocation.equals("Rev")) { + value = itemRevision.getStringProperty(sourceTrueName); + }else if (sourceLocation.equals("Form")) { + // ȡ汾 + TCComponentForm form = (TCComponentForm) itemRevision.getRelatedComponent("IMAN_master_form_rev"); + if (form != null) { + value = form.getStringProperty(sourceTrueName); + } + } + + }else { + System.out.println("ѡжļУ޷ȡֵ̳"); + } + } + + } + return value; + } + + /** + * + * @throws Exception + */ + public void createItem() throws Exception { +// Map formMap = new HashMap(); + //ʵֵֵ(string\date\lov:lovname) + List formList = new ArrayList(); + CreateIn itemDef = new CreateIn(); + CreateInput itemRevisionDef = new CreateInput(); + //ȡ + List typeList = this.drawingObjTypeInfos;//ѡõϢ + if (typeList == null || typeList.size() <= 0) { + System.out.println("ͻȡ쳣ʱͼֽʧܣ"); + return; + } + String itemType = null; + String item_id = null; + String item_revision_id = null; + String chooseType = (String) this.drawingObjTypeComboBox.getSelectedItem(); + for (String string : typeList){ + String[] types = string.split("="); + if (chooseType.equals(types[0])) { + itemType = types[1]; + break; + } + } + System.out.println("½ͼֽΪ"+itemType); + //ȡͰ汾id + for (Map.Entry entry : this.propComponentMap.entrySet()) { + String key = entry.getKey(); + if (key.equals("ID*")){ + item_id = getComponentValue(entry.getValue()); + } else if (key.equals("汾")) { + item_revision_id = getComponentValue(entry.getValue());//item_revision_id + } + } + + + //item + itemDef.data.boName = itemType; + itemDef.data.stringProps.put("item_id", item_id); + + //汾 + itemRevisionDef.boName = itemType + "Revision"; + if (item_revision_id != null) { + itemRevisionDef.stringProps.put("item_revision_id", item_revision_id); + }else { + System.out.println("ȡ汾idʧܣ󴴽ʧܣ"); + return; + } + + + System.out.println("Ŀ-="+this.propComponentMap.size()); + for (Map.Entry entry : this.propComponentMap.entrySet()) { + String key = entry.getKey();//༭Ŀ + String value = getComponentValue(entry.getValue());//ȡѡСֵ + int tag = 0; + //ѡãȡʵֵλá͵Ϣ + for (String prop : preferencePropList){ + String[] split = prop.split("="); + if (split != null && split.length > 0) { + String propName = split[0]; + String s1 = split[1]; + String[] split2 = s1.split("\\."); + String location = null; + String trueName = null; + if (split2.length>0) { + location = split2[0];//Item/Rev/Form + trueName = split2[1];//ʵ + }else { + System.out.println("ѡõϢ"+split[1]+"쳣.ţ"); + } + String typeString = split[2]; + String configName = removeAsterisk(propName); + String showName = removeAsterisk(key); + if (configName.equals(showName)) { + tag++; + System.out.println("ʼֵԣ"+propName+"Ӧֵ"+value); + //жǷҪ̳УҪĻȡֵ̳ + String sourceValue = getSourceValue(split); + if (sourceValue != null) { + System.out.println("Ҫȡֵ̳"+sourceValue); + value = sourceValue; + } + System.out.println(propName+"=>"+value); + + if (location.equals("Item")) { + if (typeString.equals("string")) { + itemDef.data.stringProps.put(trueName, value); + }else if (typeString.equals("date")) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-M-dd HH:mm"); + Date date = sdf.parse(value); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + itemDef.data.dateProps.put(trueName, calendar); + }else if (typeString.split(":")[0].equals("lov")) { + String trueValue = getLovTrueValue(trueName,value,this.lovPropertyList); + itemDef.data.stringProps.put(trueName, trueValue); + } + }else if (location.equals("Rev")) { + if (typeString.equals("string")) { + itemRevisionDef.stringProps.put(trueName, value); + }else if (typeString.equals("date")) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-M-dd HH:mm"); + Date date = sdf.parse(value); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + itemRevisionDef.dateProps.put(trueName, calendar); + }else if (typeString.split(":")[0].equals("lov")) { + String trueValue = getLovTrueValue(trueName,value,this.lovPropertyList); + itemRevisionDef.stringProps.put(trueName, trueValue); + } +// itemRevisionDef.stringProps.put(trueName, value); + }else if (location.equals("Form")) { + //˴Աʱֵݴ浽һMap +// itemRevisionDef.stringProps.put(trueName, value); + String[] formPropInfos = {trueName, value, typeString};//ʵƣorѡеֵ(string\date\lov:lovname) + formList.add(formPropInfos); + }else { + System.out.println("ѡ֮λá"); + } + }else { + continue; + } + }else { + System.out.println("ѡõϢ"+prop+"쳣(=)"); + } + + } + if (tag == 0) { + System.out.println("Ŀ["+key+"]δѡҵӦ"); + } + } + + System.out.println("0"); + + itemDef.data.compoundCreateInput.put("revision", new CreateInput[] { itemRevisionDef }); + + DataManagementService dmService = DataManagementService.getService(tcSession); + CreateResponse createObjResponse = dmService.createObjects(new CreateIn[] { itemDef }); + + if (createObjResponse.serviceData.sizeOfPartialErrors() == 0) { + for (CreateOut out : createObjResponse.output) { + for (TCComponent obj : out.objects) { + TCComponentItem item; + TCComponentItemRevision itemRev; + TCComponentForm form; + if (obj instanceof TCComponentItem) { + item = (TCComponentItem) obj; + item.lock(); + try { + System.out.println("ʼ½ʱͼֽѡж"); + if (this.selectComponent instanceof TCComponentFolder) { + System.out.println("ضļ"); + TCComponentFolder folder = (TCComponentFolder) this.selectComponent; + folder.add("contents", item); + }else if (this.selectComponent instanceof TCComponentItemRevision) { + TCComponentItemRevision revision = (TCComponentItemRevision) this.selectComponent; + revision.add("SB6_LSSJRelation", item); + + } + + } catch (Exception e) { + System.out.println("item쳣"); + e.printStackTrace(); + }finally { + item.save(); + item.unlock(); + } + } + else if (obj instanceof TCComponentItemRevision) { + itemRev = (TCComponentItemRevision) obj; + if (!setFormProperty(itemRev,formList)) { + System.out.println("ʧܣ"); + } + itemRev.lock(); + try { + itemRev.setStringProperty("sb6_ifls", ""); + } catch (Exception e) { + System.out.println("itemRev쳣"); + e.printStackTrace(); + }finally { + itemRev.save(); + itemRev.unlock(); + } + } + else if (obj instanceof TCComponentForm) { + form = (TCComponentForm) obj; + /* + * form.lock(); try { if (formList.size()>0) { System.out.println("ʼ"); + * for (String[] forms : formList) { if (forms.length == 3) { String tNameString + * = forms[0]; String tValueString = forms[1]; String tTypeString = forms[2]; + * + * setTCPropertyValue(form,tNameString,tValueString); } } } } catch (Exception + * e) { System.out.println("쳣"); e.printStackTrace(); }finally { + * form.save(); form.unlock(); } + */ + } + + } + } + } + } + + /** + * ʵlovԼgetӦlovϣͨlovʾֵȡlovӦʵֵ + * @param configName ѡõʵ + * @param lovShowName lovʾֵ + * @param lovPropertyList2 lovԼ + * @return lovʵֵ + */ + private String getLovTrueValue(String configName, String lovShowName, List lovPropertyList2) { + String trueNameString = null; + for (LovProperty lovProperty : lovPropertyList2) { + String propName = lovProperty.getPropTrueName(); + if (configName.equals(propName)) { + Map lovMap = lovProperty.getLovMap(); + return lovMap.get(lovShowName); + } + } + System.out.println("δȡlov-["+lovShowName+"]ʵֵ"); + return null; + } + + /** + * + * @param component + * @param formList + * @return + */ + private boolean setFormProperty(TCComponent component, List formList) { + try { + TCComponentForm form = (TCComponentForm) component.getRelatedComponent("IMAN_master_form_rev"); + form.lock(); + try { + if (formList.size()>0) { + System.out.println("ʼ"); + for (String[] forms : formList) { + String finalPropValue = null; + if (forms.length == 3) { + String tNameString = forms[0];//ʵ + String tValueString = forms[1];//orѡֵ + String tTypeString = forms[2];//string/data/lov:* + if (tTypeString.contains("lov")) { + finalPropValue = getLovTrueValue(tNameString,tValueString,this.lovPropertyList); + }else { + finalPropValue = tValueString; + } + + + System.out.println("ñ["+tNameString+"]="+finalPropValue); + setTCPropertyValue(form,tNameString,finalPropValue); + } + } + System.out.println("Ըֵɣ"); + }else { + System.out.println("ûҪֵıԣ"); + } + return true; + } catch (Exception e) { + System.out.println("쳣"); + e.printStackTrace(); + }finally { + form.save(); + form.unlock(); + } + } catch (TCException e) { + // TODO Զɵ catch + e.printStackTrace(); + } + + + + + return false; + + } + + /** + * + * @Title: setTCPropertyValue + * @Description: ݶֵ + * @param @param item + * @param @param propertyName + * @param @param value + * @return void + * @throws + */ + public static void setTCPropertyValue(TCComponent item, String propertyName, Object value) { + try { + String type2 = item.getType(); + TCProperty tcProperty = item.getTCProperty(propertyName); + String name = item.getUid(); + if (tcProperty == null) { + System.out.println(""+name+"ͣ"+type2+"вԣ"+propertyName); + return; + } + switch (tcProperty.getPropertyType()) { + case TCProperty.PROP_double: + if (value instanceof Double) { + tcProperty.setDoubleValue((double) value); + } else { + tcProperty.setDoubleValue(Double.parseDouble(value.toString())); + } + break; + case TCProperty.PROP_int: + if (value instanceof Integer) { + tcProperty.setDoubleValue((int) value); + } else { + tcProperty.setDoubleValue(Integer.parseInt(value.toString())); + } + break; + case TCProperty.PROP_string: + tcProperty.setStringValue(value.toString()); + break; + case TCProperty.PROP_long_string: + tcProperty.setStringValueArray((String[]) value); + break; + case TCProperty.PROP_date: + if (value instanceof Date) { + tcProperty.setDateValue((Date) value); + } else { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-M-dd HH:mm"); + tcProperty.setDateValue(sdf.parse(value.toString())); + } + break; + default: + break; + } + + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + /** * ȡʱͼֽʱѡͽƼ @@ -233,7 +645,13 @@ public class CreateTempDrawingDialog extends JFrame implements ActionListener{ System.out.println("ǰѡͼֽ="+chooseType); // رյǰ this.dispose(); - buildDrawingObjTypeFrame(); + try { + buildDrawingObjTypeFrame(); + } catch (Exception e2) { + // TODO: handle exception + e2.printStackTrace(); + } + }else if (s.equals(this.closeButton)) { System.out.println("رաť"); // ر½ @@ -244,14 +662,16 @@ public class CreateTempDrawingDialog extends JFrame implements ActionListener{ if(!checkRequiredProp()){ System.out.println("Уδͨ"); return ; - }else { - System.out.println("Уͨ"); } - - - - - + System.out.println("Уͨ"); + try { + createItem(); + } catch (Exception e2) { + // TODO: handle exception + e2.printStackTrace(); + } + + System.out.println("ʱͼֽɣ"); // ر½ this.buildFram.dispose(); } @@ -271,20 +691,19 @@ public class CreateTempDrawingDialog extends JFrame implements ActionListener{ private boolean checkRequiredProp() { System.out.println("propComponentMap.size="+propComponentMap.size()); if (propComponentMap.size()>0) { - System.out.println("1"); for (Map.Entry entry : propComponentMap.entrySet()) { String key = entry.getKey(); Object value = getComponentValue(entry.getValue()); - System.out.println("ʼУԣ"+key); +// System.out.println("ʼУԣ"+key); if (key.contains("*")) { - System.out.println("ԡ"+key+"ѡ"); +// System.out.println("ԡ"+key+"ѡ"); if (value == null || value.equals("")) { MessageBox.post("ԡ"+key+"Ϊգ" , "ʾ", MessageBox.INFORMATION); return false; } } - System.out.println(key + ": " + value); + System.out.println(">>>"+key + ": " + value); } } @@ -330,6 +749,8 @@ public class CreateTempDrawingDialog extends JFrame implements ActionListener{ public JFrame buildDrawingObjTypeFrame() throws TCException{ System.out.println("ͼֽ棡"); this.propComponentMap.clear(); + this.lovPropertyList.clear(); + this.preferencePropList.clear(); // ½ JFrame frame = new JFrame(); @@ -398,17 +819,29 @@ public class CreateTempDrawingDialog extends JFrame implements ActionListener{ String preferenceName = getSelectTypePreferenceName(); - System.out.println("preferenceName = " + preferenceName); int propIndex = 2; if (preferenceName != null){ - List propList = getPreferenceInfos(preferenceName); - System.out.println("propList.size = "+propList.size()); - for(String propInfo : propList){//propInfoʽΪ*Ч=Form.sb6_validuntil=date=Form.sb6_validuntil + List preferenceInfoList = getPreferenceInfos(preferenceName); + if (preferenceInfoList != null && preferenceInfoList.size()>0) { + System.out.println("ȡѡ["+preferenceName+"]еóɹ"); + this.preferencePropList = preferenceInfoList; + }else { + MessageBox.post("ȡѡ"+preferenceName+"ϢʧܣǷȷ" , "ʾ", MessageBox.INFORMATION); + return null; + } + + System.out.println("õ = "+this.preferencePropList.size()); + for(String propInfo : this.preferencePropList){//propInfoʽΪ*=Item.object_name=string + System.out.println("ʼѡõϢ"+propInfo); String[] propConfigInfoArray= propInfo.split("="); String validPropName = null; if (propConfigInfoArray.length >= 3){ - String name = propConfigInfoArray[0]; - String type = propConfigInfoArray[2]; + String name = propConfigInfoArray[0];//ͼֽ͡ + System.out.println("ʼȡѡ["+name+"]Ϣ"); + String[] locationAndTruePropName = propConfigInfoArray[1].split("\\."); + + String trueName = locationAndTruePropName[1];//sb6_DRM03 + String type = propConfigInfoArray[2];//lov:SB6_TZLXLOV // prop Label if (name != null && name.contains("*")){ @@ -427,7 +860,12 @@ public class CreateTempDrawingDialog extends JFrame implements ActionListener{ // prop value if (type != null){ - String typeValue = type.split(":")[0]; + String[] ss = type.split(":");//{"lov","SB6_TZLXLOV"} + String lovName = null; + String typeValue = ss[0]; + if (ss.length == 2) { + lovName = ss[1]; + } if (typeValue.equals("string")){ JTextField propTextField = new JTextField(); @@ -458,9 +896,20 @@ public class CreateTempDrawingDialog extends JFrame implements ActionListener{ propComponentMap.put(validPropName, dateButton); } else if (typeValue.equals("lov")) { //TODO ðźLOVƻȡlovֵװӵpropComboBox - //TODO ĵеļ̳ԴǸɶ - String[] lovs = {"lov1","lov2","lov3"};//ģlovֵ - JComboBox propComboBox = new JComboBox(lovs); + if (lovName == null) { + System.out.println("δȡ["+name+"]õlovƣ!"); + return null; + } + Map lovMap = getLOVDisplay_value(tcSession, lovName); + String[] displayLovName = lovMap.keySet().toArray(new String[0]);//lovʾֵ + LovProperty lovProperty = new LovProperty(); + lovProperty.setPropName(name); + lovProperty.setPropTrueName(trueName); + lovProperty.setLov(true); + lovProperty.setLovMap(lovMap); + this.lovPropertyList.add(lovProperty); + + JComboBox propComboBox = new JComboBox(displayLovName); GridBagConstraints gbcPropCombo = new GridBagConstraints(); @@ -476,8 +925,12 @@ public class CreateTempDrawingDialog extends JFrame implements ActionListener{ propComponentMap.put(validPropName, propComboBox); } + }else { + System.out.println("ѡõ["+name+"]ϢУδȷͣ"); } propIndex ++; + }else { + System.out.println("ѡ["+preferenceName+"]øʽȷ飡"); } } }else { @@ -531,7 +984,7 @@ public class CreateTempDrawingDialog extends JFrame implements ActionListener{ }else {{ return null;//ȡ汾IDʧ }} - }else if (selectComponent instanceof TCComponentFolder) { + }else if (selectComponent2 instanceof TCComponentFolder) { System.out.println("ǰѡжļж󣬴IDֵÿ"); return ""; }else { @@ -551,5 +1004,29 @@ public class CreateTempDrawingDialog extends JFrame implements ActionListener{ return str.replaceAll("\\*", ""); } + /** + * TC LOVֵʾֵ-ʵֵ + * @param seesion + * @return + * @throws TCException + */ + public static Map getLOVDisplay_value(TCSession seesion,String lovProp) throws TCException + { + Map Display_values = new HashMap(); + TCComponentListOfValues unitLov = TCLOVUtil.findLOVByName(seesion, lovProp); + if(unitLov !=null) + { + ListOfValuesInfo listOfValues = unitLov.getListOfValues(); + String[] realval = listOfValues.getStringListOfValues(); + String value=""; + boolean flag = false; + for (int i = 0; i < realval.length; i++) { + String disval = listOfValues.getDisplayableValue(realval[i]); + Display_values.put(disval, realval[i]); + } + } + return Display_values; + } + } diff --git a/src/cn/net/connor/createTempDrawings/handlers/CreateTempDrawingHandler.java b/src/cn/net/connor/createTempDrawings/handlers/CreateTempDrawingHandler.java index 94d7b33..76849a5 100644 --- a/src/cn/net/connor/createTempDrawings/handlers/CreateTempDrawingHandler.java +++ b/src/cn/net/connor/createTempDrawings/handlers/CreateTempDrawingHandler.java @@ -13,10 +13,12 @@ import com.teamcenter.rac.util.MessageBox; import cn.net.connor.createTempDrawings.dialogs.CreateTempDrawingDialog; + public class CreateTempDrawingHandler extends AbstractHandler { @Override public Object execute(ExecutionEvent arg0) throws ExecutionException { + System.out.println("ʱͼֽHandler"); int flag = 0; AbstractAIFApplication application = AIFUtility.getCurrentApplication();