mdd之xml详解(领域元数据)

1.component
    moduleName模块名    name包名    moduleName.name  
    例:<component name="transferapply" moduleName="st" title="调拨订单组件" domain="ustock">   domain为域名
    
2.class 实体   数据库表
    例:<class name="TransferApply" title="调拨订单主表" tableName="st_transferapply">
    
3.attributes 类变量/数据库表字段 集合

4.attribute  类变量/数据库表字段
    name 类变量
    columnNmae 数据库字段(如果没有默认与name一样)
    title 标题备注
    type 类变量/数据库表字段 类型
        如果type值为对应的实体类,则实际对应的为该实体的id,也有为文档通过实体快速获取属性的含义(在数据库中表示表连接的关系入口,暂定以为子表)
        目的:1)可以通过子表查到主表的记录
              2)可以为文档编写提供便利
    例:<attribute name="operator" title="经办人ID" type="aa.operator.Operator" columnName="iOperatorId" dataPowerFlag="true"/>
    
    isKey="true" 设置为主键
    isSyncKey="true" 不为空,默认值为系统时间
    Decimal类型 type="Decimal" 精度长度 iPrecision="19" 小数位 iScale="8"
    String类型 (varchar类型)type="String" 长度 iLength="20"
    
5.realizations    接口的实现
    supplier 要实现的接口
    client        具体实现接口的类
    作用:可以得到接口中定义的变量/表字段
    
6.generalizations 类继承
    parent 要继承的父类
    child  子类

*接口和父类中的‘属性’都会在子类中存在,表中建立对应字段

7.associations 父类子类/主表子表 间关系  1对1 or 1对多

    主要作用:与4中的对象类型type对比,4中是通过子表找主表,相当于外键,
              而7的作用是通过主表找与子表有关的数据。类似hibernate中的1对1及1对多
              当是1对多时,类中为引用类的集合
              当是1对1时,类中为引用类对象
    例:

    <association type="composition" roleB="mainid" typeB="TransferApply" roleA="TransferApplys" typeA="TransferApplys"/> 
    
        typeB 主表映射类
         roleA  主表映射类中与子表关联的变量名
         
         typeA    子表映射的类
         roleB    子表与主表的关联字段
    表示:typeB中定义了一个变量roleA,而roleA的泛型为typeA,通过
            子表的roleB与主表的id进行关联封装

举                              个                               栗                                    子~

<?xml version="1.0" encoding="utf-8"?>
<components xmlns="http://www.imeta.org/meta" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.imeta.org/meta http://upsms.yonyouup.com/meta.xsd">
	<!-- 参考文献(相当于import引用,此处在云网址上已经与此处的主子类相关联了,所以其实可以不写这个) -->
	<references>
		<reference file="java.xml" />
		<reference file="aa.xml" />
		<reference file="base.xml" />
		<reference file="store.xml" />
		<reference file="op.xml" />
		<reference file="warehouse.xml" />
		<reference file="businesstype.xml" />
		<reference file="retail.vouch.xml" />
		<reference file="product.xml" />
		<reference file="retaildailyreport.xml"/>
		<reference file="matterinfo.xml"/>
		<reference file="pu.xml"/>
		<reference file="pub.xml"/>
	</references>   
	<!-- domain域是什么==========-->
	<!-- 楼上解析:采购订单domain域就是upu。都挂在pu模块下 -->
	<component name="purblueinvoicegr" moduleName="pu" title="采购蓝票组件gr"  domain="upu">
		<enum name="InvoiceTypegr" title="发票类型">
			<item name="VATSpecail" title="增值税专用发票" value="0" />
			<item name="VATNormal" title="增值税普通发票" value="1" />
			<item name="VATNormalE" title="增值税电子普通发票" value="2" />
		</enum>
		<!-- 没用到=================== -->
		<!-- 楼上解析:可以删除试试,应该没影响 -->
		<enum name="PriceIdentifygr" title="价格标识">
			<item name="haveTax" title="含税价" value="0" />
			<item name="noTax" title="无税价" value="1" />
		</enum>
		<!-- 此处的dataPowerScene填什么============ -->
		<!-- 楼上解析:dataPowerScene  dataPowerFlag  dataPowerAuthAttribute这里的三个属性,共同进行权限管理 -->
		<class name="PurBlueInvoicegr" title="采购发票主表gr" tableName="st_purblueinvoice_gr" dataPowerScene="bill_maintain">
			<attributes>
				<attribute name="operator" title="采购业务员" type="bd.staff.Staff" columnName="iOperatorId" dataPowerFlag="true"/>
				<attribute name="custom" columnName="iCustomId" title="所属客户" type="Long" iLength="20"/>
				<attribute name="invoiceType" title="发票类型" type="InvoiceTypegr" columnName="invoiceTypegr" />
				<attribute name="bustype" title="业务类型" type="bd.bill.TransType" columnName="iBusType" />
				<!--  isFunShare和cDataRule作用是什么=======-->
				<attribute name="org" title="采购组织" type="aa.org.PurchaseOrg" columnName="iOrgid" isFunShare="true" cDataRule="&quot;&lt;%u8c-config.option.singleOrg%&gt;&quot;==&quot;false&quot;"/>
				<!--  isMasterOrg和cDataRule作用===========-->
				<!-- 楼上解析:每一个的单据都有对应的组织,没有组织的单据无意义。可以这么理解,主表中为主组织,从表为从组织 -->
				<attribute name="inInvoiceOrg" title="收票组织" type="aa.org.FinanceOrg" columnName="iInInvoiceOrgid"  isMasterOrg="true" cDataRule="&quot;&lt;%u8c-config.option.singleOrg%&gt;&quot;==&quot;false&quot;"/>
				<attribute name="balanceOrg" title="结算组织" type="aa.org.Org" columnName="iBalanceOrgid" cDataRule="&quot;&lt;%u8c-config.option.singleOrg%&gt;&quot;==&quot;false&quot;"/>
				<attribute name="otherInvoiceCode" title="对方发票号" type="String" iLength="100" columnName="cOtherInvoiceCode" />
				<attribute name="otherInvoiceDate" title="对方发票日期" type="Date" columnName="dOtherInvoiceDate" />
				<attribute name="vendor" title="供货供应商" type="aa.vendor.Vendor" columnName="iVendorId" dataPowerFlag="true"/>
				<attribute name="contact" title="供货联系人" columnName="cContact" type="String" iLength="100" note="供货联系人"/>
				<attribute name="contactTel" title="供货联系人手机" columnName="cContactTel" type="String" iLength="100" note="供货联系人手机"/>
				<!--  dataPowerFlag和dataPowerType作用============-->
				<!-- 楼上解析:dataPowerScene  dataPowerFlag  dataPowerAuthAttribute这里的三个属性,共同进行权限管理 -->
				<attribute name="department" title="采购部门"  type="aa.dept.Department" columnName="iDepartment" dataPowerFlag="true" dataPowerType="bd.adminOrg.AdminOrgVO"/>
				<attribute name="invoiceVendor" title="开票供应商" type="aa.vendor.Vendor" columnName="iInvoiceVendor" />
				<attribute name="invVendorBank" title="开票供应商银行名称" type="String" iLength="100" columnName="cInvVendorBank" />
				<attribute name="invVendorAccount" title="开票供应商银行账号" type="String" iLength="100" columnName="cInvVendorAccount" />
				<!--  iPrecision和iScale作用==========-->
				<!-- 楼上解析:这俩个属性规定小数点前后数据的位数 -->
				<attribute name="taxRate" title="税率" type="Decimal"  columnName="fTaxRate" iPrecision="28" iScale="8"  note="税率"/>
				<attribute name="isInvBack" title="是否红字发票" type="Boolean" columnName="iIsInvBack" />
				<attribute name="totalPayNATMoney" title="本币累计付款金额" columnName="fTotalPayNATMoney" type="Decimal" iPrecision="28" iScale="8" note="本币累计付款金额"/>
				<attribute name="totalQuantity" title="整单数量" columnName="fTotalQuantity" type="Decimal" iPrecision="28" iScale="8" />
				<attribute name="srcBill" title="来源单据" type="Long"  columnName="iSrcBillID" />
				<attribute name="srcBillNO" title="来源单据号" type="String"  iLength="100" columnName="cSrcBillNO" />
				<attribute name="source" title="来源单据类型" type="String"  iLength="100" columnName="cSource" />
				<attribute name="isBeginning" title="是否期初发票" type="Boolean" columnName="isBeginning" />
			</attributes>
		</class>
		<class name="PurBlueInvoicesgr" title="采购发票子表gr" tableName="st_purblueinvoices_gr" dataPowerScene="bill_maintain">
			<attributes>
				<attribute name="mainid" columnName="iMainId" title="mainid" type="PurBlueInvoicegr" />
				<attribute name="inOrg" title="收货组织" type="aa.org.InventoryOrg" columnName="iInOrg" cDataRule="&quot;&lt;%u8c-config.option.singleOrg%&gt;&quot;==&quot;false&quot;"/>
				<attribute name="demandOrg" title="需求组织" type="aa.org.InventoryOrg" columnName="iDemandOrg" cDataRule="&quot;&lt;%u8c-config.option.singleOrg%&gt;&quot;==&quot;false&quot;"/>
				<attribute name="priceHaveTax" title="价格是否含税" type="Boolean" columnName="iPriceHaveTax" />
				<attribute name="isGiftProduct" title="是否赠品" columnName="isGiftProduct"  type="Boolean" />
				<attribute name="batchno" title="批号" columnName="cBatchNO"  type="String" iLength="255" />
				<attribute name="supplyItemCode" title="供应商存货编码" columnName="cSupplyItemCode"  type="String" iLength="255" />
				<attribute name="supplyItemName" title="供应商存货名称" columnName="cSupplyItemName"  type="String"  iLength="255" />

				<attribute name="unit" title="主计量" type="aa.product.ProductUnit" columnName="iUnitId" />
				<attribute name="priceUOM" title="计价单位" type="aa.product.ProductUnit" columnName="oPriceUOM" />
				<attribute name="purUOM" title="采购单位" type="aa.product.ProductUnit"  columnName="oPurUOM" />
				<attribute name="totalPayQuantity" title="累计付款数量" columnName="fTotalPayQuantity" type="Decimal" iPrecision="28" iScale="8" note="累计付款数量"/>
				<attribute name="totalPayNATMoney" title="本币累计付款金额" columnName="fTotalPayNATMoney" type="Decimal" iPrecision="28" iScale="8" note="本币累计付款金额"/>
				<attribute name="totalBalanceQuantity" title="累计结算数量" columnName="fTotalBalanceQuantity" type="Decimal" iPrecision="28" iScale="8" note="累计结算数量"/>
				<attribute name="totalBalanceMoney" title="累计结算金额" columnName="fTotalBalanceMoney" type="Decimal" iPrecision="28" iScale="8" note="累计结算金额"/>
				<attribute name="balanceDate" title="结算日期" type="Date" columnName="dBalanceDate" />
				<attribute name="rationalLossQuantity" title="合理损耗数量" columnName="fRationalLossQuantity" type="Decimal" iPrecision="28" iScale="8" note="合理损耗数量"/>
				<attribute name="nRationalLossQuantity" title="非合理损耗数量" columnName="fNRationalLossQuantity" type="Decimal" iPrecision="28" iScale="8" note="非合理损耗数量"/>
				<attribute name="nRationalLossMoney" title="非合理损耗金额" columnName="fNRationalLossMoney" type="Decimal" iPrecision="28" iScale="8" note="非合理损耗金额"/>
				<attribute name="maxInPrice" title="最高进价" type="Decimal" iPrecision="28" iScale="8" columnName="fMaxInPrice" />
				<attribute name="srcPOID" title="来源订单号" type="Long"  columnName="iSrcPOID" />
				<attribute name="srcPOLineID" title="来源订单行" type="Long"  columnName="iSrcPOLineID" />
				<attribute name="srcPOLineRowNo" title="来源订单行号" type="Integer"  columnName="iSrcPOLineRowNo" />
				<attribute name="srcPOCode" title="来源订单编号" type="String"  columnName="iSrcPOCode" iLength="255" />
				<attribute name="accountOrg" title="会计主体" type="aa.org.Org" columnName="account_org"/>
				<attribute name="project" title="项目id" type="bd.project.ProjectVO"  columnName="iProject" dataPowerFlag="true"/>
			</attributes>
		</class>

		<!-- 此处为过滤区那里的自定义项嘛============== -->
		<!-- 楼上解析:此处为UI元数据,所以自定义项为页面展示时候,罗列出来的那些列,如果需要加的话,就会编辑自定义项,之后就会出现新的一列 -->
		<!-- 此处的自定义项会另生一张表来存放这些字段,要不然60个自定义字段都放在主表或者子表,会夹中表的负担,分开放为好 -->
		<class name="PurBlueInvoiceCustomItemgr" title="采购发票主表自定义项" tableName="st_purblueinvoice_customitem_gr">
			<attributes>
				<attribute name="id" columnName="id" title="采购发票主表id" type="PurBlueInvoicegr" isKey="true" />
			</attributes>
		</class>
		<class name="PurBlueInvoicesCustomItemgr" title="采购发票子表自定义项" tableName="st_purblueinvoices_customitem_gr">
			<attributes>
				<attribute name="id" columnName="id" title="采购发票子表id" type="PurBlueInvoicesgr" isKey="true" />
			</attributes>
		</class>
		<!-- 接口的实现 -->
		<realizations>
			<!-- 自定义项 -->     <!-- 还有一个固定自定义项 -->
			<realization supplier="base.itf.CustomItem" client="PurBlueInvoiceCustomItemgr" />
			<realization supplier="base.itf.CustomItem" client="PurBlueInvoicesCustomItemgr" />
			<!-- 规格 -->
			<realization supplier="base.itf.FreeItem" client="PurBlueInvoicesgr" />
			<!-- 计量单位信息 -->
			<realization supplier="voucher.base.IUOMInfo" client="PurBlueInvoicesgr" />
			<!-- 原币金额信息 -->
			<realization supplier="voucher.base.IOriMoneyInfo" client="PurBlueInvoicesgr" />
			<!-- 本币金额信息 -->
			<realization supplier="voucher.base.INatMoneyInfo" client="PurBlueInvoicesgr" />
			<!-- 生单回写 -->
			<realization supplier="base.itf.IBackWrite" client="PurBlueInvoicesgr" />	
			<!-- 计量单位信息 -->
			<realization supplier="voucher.base.IUOMPriceInfo" client="PurBlueInvoicesgr" />
			<realization supplier="voucher.base.IOriMoneyInfo" client="PurBlueInvoicegr" />
			<realization supplier="voucher.base.INatMoneyInfo" client="PurBlueInvoicegr" />
			<!-- 打印次数 -->
			<realization supplier="base.itf.IPrintCount" client="PurBlueInvoicegr" />
			<!-- 商家相关 -->
			<realization supplier="base.itf.IShop" client="PurBlueInvoicegr" />
			<!-- 币种信息 -->
			<realization supplier="voucher.base.ICurrency" client="PurBlueInvoicegr" />
			<!-- 事项交换 -->
			<realization supplier="st.matterinfo.IMatterInfoAble" client="PurBlueInvoicegr" />
			<!-- 采购公共业务校验 -->
			<realization supplier="pu.pub.ICommonBizCheck" client="PurBlueInvoicegr" />
			<!-- 立账规则接口 -->
			<realization supplier="pub.accountRule.IAccountRule" client="PurBlueInvoicegr" />
			<!-- 是否 -->
			<realization supplier="pub.uom.IUnitExchangeType" client="PurBlueInvoicesgr" />
			<!-- 单据回写 -->
			<realization supplier="retail.voucher.IHeadWriteBack" client="PurBlueInvoicegr" />
		</realizations>
		<!-- 类的继承 -->
		<generalizations>
			<generalization parent="retail.voucher.RetailVouch" child="PurBlueInvoicegr" />
			<generalization parent="retail.voucher.RetailVouchLine" child="PurBlueInvoicesgr" />
		</generalizations>
		<!--  将类之间的关系表明出来-->
		<!-- 
			typeB  主表映射类
			roleA  主表映射类中与子表关联的变量名
			typeA  子表映射的类
			roleB  子表与主表的关联字段
			表示: typeB中定义了一个变量roleA,而roleA的泛型为typeA,通过子表的roleB与主表的id进行关联封装
		-->
		
		<associations>
		<!--  (roleA)purBlueInvoicesgr类为(typeA)PurBlueInvoicesgr类型,(roleA)随意取个名字为roleA(它为一个集合,一对多中一对应的多的集合,之后再excel列表中
		通过roleA.属性的方式来获取子类中的属性),它中的(roleB)mainid类型为(typeB)PurBlueInvoicegr-->
		<!-- 自己的理解:typeA类中的roleB属性是typeB类型的 -->
			<association type="composition" roleB="mainid" typeB="PurBlueInvoicegr" roleA="purBlueInvoicesgr" typeA="PurBlueInvoicesgr" />
			<!--  (roleA)headItem类为(typeA)PurBlueInvoiceCustomItemgr类型,(roleA)headItem类中的(roleB)id类型为(typeB)PurBlueInvoicegr========================-->
			<association type="composition" roleB="id" typeB="PurBlueInvoicegr" roleA="headItem" typeA="PurBlueInvoiceCustomItemgr" roleAMulti="1" />
			<association type="composition" roleB="id" typeB="PurBlueInvoicesgr" roleA="bodyItem" typeA="PurBlueInvoicesCustomItemgr" roleAMulti="1" />
		</associations>
	</component>
</components>


 

 

 

个性签名:一个人在年轻的时候浪费自己的才华与天赋是一件非常可惜的事情

     如果觉得这篇文章对你有小小的帮助的话,记得在右下角“点赞”~“评论”  “收藏”哦,博主在此感谢!

 

万水千山总是情,打赏5毛买辣条行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!          

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值