OSGI HengSin/2Pack
From ADempiere
This Wiki is read-only for reference purposes to avoid broken links.
The information here shall be incorporated into my 3rd and final chapter of the GodFather series - Redhuan D. Oon.
Output Readability
- A sample top part is shown here so you get what i mean (pre UUID}:
<?xml version="1.0" encoding="ISO-8859-1"?> <adempiereAD Name="Africa" Version="1" AdempiereVersion="all" DataBaseVersion="1" Description="OSGIPackage" Author="1" AuthorEmail="1" CreatedDate="2009-11-24 14:03:05.0" UpdatedDate="2010-12-21 00:11:29.0" PackOutVersion="100" Client="0-SYSTEM-System"> <AD_Menu type="table"> <SeqNo>999</SeqNo> <AD_Org_ID>0</AD_Org_ID> <AD_Form_ID reference="id"/> <AD_Process_ID reference="id"/> <AD_Task_ID reference="id"/> <AD_Window_ID reference="id"/> <AD_Workbench_ID reference="id"/> <AD_Workflow_ID reference="id"/>
- Compare to what we have earlier (from my same sample):
<?xml version="1.0" encoding="ISO-8859-1"?> <adempiereAD Name="Africa" Version="1" CompVer="all" DataBase="1" Description="isec" creator="1" creatorcontact="1" createddate="2009-11-24 14:03:05" updateddate="2010-09-18 13:22:55" PackOutVer="005"> <menu ADMenuNameID="Afrikiya" ADWindowNameID="" ADProcessNameID="" ADFormNameID="" ADTaskNameID="" ADWorkbenchNameID="" ADWorkflowNameID="" ADParentSeqno="999" Action="" Description="" EntityType="U" isActive="true" isReadOnly="false" isSOTrx="false" isSummary="true"> <menu ADMenuNameID="IS_Booking" ADWindowNameID="IS_Booking" ADProcessNameID="" ADFormNameID="" ADTaskNameID="" ADWorkbenchNameID="" ADWorkflowNameID="" ADParentMenuNameID="Afrikiya" ADParentSeqno="2" Action="W" Description="" EntityType="U" isActive="true" isReadOnly="false" isSOTrx="false" isSummary="false">
Full Sample
PackOut.xml
- I made a simple PackOut of just a single Menu/Window/Tab/Field(IsActive):
<?xml version="1.0" encoding="ISO-8859-1"?> <adempiereAD Name="OSGITest" Version="2" AdempiereVersion="all" DataBaseVersion="2" Description="Out" Author="red" AuthorEmail="2" CreatedDate="2010-12-24 16:44:19.0" UpdatedDate="2010-12-24 16:44:19.0" PackOutVersion="100" Client="0-SYSTEM-System"> <AD_Menu> <SeqNo>999</SeqNo> <AD_Org_ID>0</AD_Org_ID> <AD_Form_ID reference="id"/> <AD_Process_ID reference="id"/> <AD_Task_ID reference="id"/> <AD_Window_ID reference="table" reference-key="AD_Window.Name">OSGIWindow</AD_Window_ID> <AD_Workbench_ID reference="id"/> <AD_Workflow_ID reference="id"/> <Action>W</Action> <Description/> <EntityType>U</EntityType> <IsActive>true</IsActive> <IsCentrallyMaintained>true</IsCentrallyMaintained> <IsReadOnly>false</IsReadOnly> <IsSOTrx>false</IsSOTrx> <IsSummary>false</IsSummary> <Name>OSGITest</Name> <AD_Window type="table"> <AD_Org_ID>0</AD_Org_ID> <AD_Color_ID reference="id"/> <AD_Image_ID reference="id"/> <Description/> <EntityType>U</EntityType> <Help/> <IsActive>true</IsActive> <IsBetaFunctionality>false</IsBetaFunctionality> <IsDefault>false</IsDefault> <IsSOTrx>true</IsSOTrx> <Name>OSGIWindow</Name> <Processing>false</Processing> <WinHeight>0</WinHeight> <WinWidth>0</WinWidth> <WindowType>M</WindowType> <AD_Table type="table"> <AD_Org_ID>0</AD_Org_ID> <AD_Val_Rule_ID reference="id"/> <AD_Window_ID reference="id"/> <AccessLevel>7</AccessLevel> <CopyColumnsFromTable>N</CopyColumnsFromTable> <Description/> <EntityType>U</EntityType> <Help/> <ImportTable>N</ImportTable> <IsActive>true</IsActive> <IsCentrallyMaintained>true</IsCentrallyMaintained> <IsChangeLog>false</IsChangeLog> <IsDeleteable>true</IsDeleteable> <IsHighVolume>false</IsHighVolume> <IsSecurityEnabled>false</IsSecurityEnabled> <IsView>false</IsView> <LoadSeq>0</LoadSeq> <Name>OSGITable</Name> <PO_Window_ID reference="id"/> <ReplicationType>L</ReplicationType> <TableName>OSGITable</TableName> <AD_Element type="table"> <AD_Element_ID>348</AD_Element_ID> <AD_Org_ID>0</AD_Org_ID> <ColumnName>IsActive</ColumnName> <Description>The record is active in the system</Description> <EntityType>D</EntityType> <Help>There are two methods of making records unavailable in the system: </Help> <IsActive>true</IsActive> <Name>Active</Name> <PO_Description/> <PO_Help/> <PO_Name/> <PO_PrintName/> <PrintName>Active</PrintName> </AD_Element> <AD_Reference type="table"> <AD_Reference_ID>20</AD_Reference_ID> <AD_Org_ID>0</AD_Org_ID> <Description>CheckBox</Description> <EntityType>D</EntityType> <Help/> <IsActive>true</IsActive> <IsOrderByValue>false</IsOrderByValue> <Name>Yes-No</Name> <VFormat/> <ValidationType>D</ValidationType> </AD_Reference> <AD_Column type="table"> <IsSyncDatabase>Y</IsSyncDatabase> <AD_Table_ID reference="table" reference-key="AD_Table.TableName">OSGITable</AD_Table_ID> <AD_Reference_Value_ID reference="id"/> <AD_Org_ID>0</AD_Org_ID> <AD_Element_ID reference="id">348</AD_Element_ID> <AD_Process_ID reference="id"/> <AD_Reference_ID reference="id">20</AD_Reference_ID> <AD_Val_Rule_ID reference="id"/> <Callout/> <ColumnName>IsActive</ColumnName> <ColumnSQL/> <DefaultValue/> <Description>The record is active in the system</Description> <EntityType>U</EntityType> <FieldLength>1</FieldLength> <FormatPattern/> <Help>There are two methods of making records unavailable in the system: activate the record. </Help> <InfoFactoryClass/> <IsActive>true</IsActive> <IsAllowLogging>true</IsAllowLogging> <IsAlwaysUpdateable>false</IsAlwaysUpdateable> <IsAutocomplete>false</IsAutocomplete> <IsEncrypted>N</IsEncrypted> <IsIdentifier>false</IsIdentifier> <IsKey>false</IsKey> <IsMandatory>false</IsMandatory> <IsParent>false</IsParent> <IsSelectionColumn>false</IsSelectionColumn> <IsTranslated>false</IsTranslated> <IsUpdateable>true</IsUpdateable> <MandatoryLogic/> <Name>Active</Name> <ReadOnlyLogic/> <SeqNo>0</SeqNo> <VFormat/> <ValueMax/> <ValueMin/> <Version>0</Version> </AD_Column> </AD_Table> <AD_Tab type="table"> <AD_Org_ID>0</AD_Org_ID> <AD_ColumnSortOrder_ID reference="id"/> <AD_ColumnSortYesNo_ID reference="id"/> <AD_Column_ID reference="id"/> <AD_Image_ID reference="id"/> <AD_Process_ID reference="id"/> <AD_Table_ID reference="table" reference-key="AD_Table.TableName">OSGITable</AD_Table_ID> <AD_Window_ID reference="table" reference-key="AD_Window.Name">OSGIWindow</AD_Window_ID> <CommitWarning/> <Description/> <DisplayLogic/> <EntityType>U</EntityType> <HasTree>false</HasTree> <Help/> <ImportFields>N</ImportFields> <Included_Tab_ID reference="id"/> <IsActive>true</IsActive> <IsAdvancedTab>false</IsAdvancedTab> <IsInfoTab>false</IsInfoTab> <IsInsertRecord>true</IsInsertRecord> <IsReadOnly>false</IsReadOnly> <IsSingleRow>false</IsSingleRow> <IsSortTab>false</IsSortTab> <IsTranslationTab>false</IsTranslationTab> <Name>OSGITab</Name> <OrderByClause/> <Parent_Column_ID reference="id"/> <Processing>false</Processing> <ReadOnlyLogic/> <SeqNo>10</SeqNo> <TabLevel>0</TabLevel> <WhereClause/> <AD_Field type="table"> <AD_Org_ID>0</AD_Org_ID> <AD_Column_ID reference="table" reference-key="AD_Column.ColumnName">IsActive</AD_Column_ID> <AD_FieldGroup_ID reference="id"/> <AD_Reference_ID reference="id"/> <AD_Reference_Value_ID reference="id"/> <AD_Tab_ID reference="table" reference-key="AD_Tab.Name">OSGITab</AD_Tab_ID> <AD_Val_Rule_ID reference="id"/> <DefaultValue/> <Description>The record is active in the system</Description> <DisplayLength>1</DisplayLength> <DisplayLogic/> <EntityType>U</EntityType> <Help> if there are invoices for this partner record existing. </Help> <HideInListView>false</HideInListView> <Included_Tab_ID reference="id"/> <InfoFactoryClass/> <IsActive>true</IsActive> <IsCentrallyMaintained>true</IsCentrallyMaintained> <IsDisplayed>true</IsDisplayed> <IsEncrypted>false</IsEncrypted> <IsFieldOnly>false</IsFieldOnly> <IsHeading>false</IsHeading> <IsMandatory/> <IsReadOnly>false</IsReadOnly> <IsSameLine>false</IsSameLine> <Name>Active</Name> <ObscureType/> <PreferredWidth/> <SeqNo/> <SortNo/> </AD_Field> </AD_Tab> </AD_Window> </AD_Menu> </adempiereAD>
adempiereDocument.xml
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet type="text/css" href="adempiereDocument.css"?> <adempiereDocument> <header>OSGITest Package Description</header> <H1>Package Name:</H1> <packagename>OSGITest</packagename> <H1>Author:</H1> <Name:>red</Name:> <H1>Email Address:</H1> <Email>2</Email> <H1>Created:</H1> <Date>2010-12-24 16:44:19.0</Date> <H1>Updated:</H1> <Date>2010-12-24 16:44:19.0</Date> <H1>Description:</H1> <description>Out</description> <H1>Instructions:</H1> <instructions>red</instructions> <H1>Files in Package:</H1> <file>File: PackOut.xml</file> <filedirectory>Directory: \dict\</filedirectory> <filenotes>Notes: Contains all application/object settings for package</filenotes> <H1>Client:</H1> <Client>0-SYSTEM-System</Client> </adempiereDocument>
See Also
- OSGI HengSin/2Pack/Debugging
- OSGI HengSin/Issues
- OSGI HengSin
- PackOut.xml sample (partial top sections) used in my debugging
- OSGI HengSin/File2PackZip
- RuleElementHandler which is created based on the present framework.