Java Based Apps on SAP Cloud_2_开发ESPM
来源:互联网 发布:淘宝怎么做数据分析 编辑:程序博客网 时间:2024/04/30 17:55
Developing Java-Based Apps on SAP Cloud Platform Week 2
JPA Model
Check Out JPA Branch
修改web.xml
Path: src/main/webapp/WEB-INF/web.xml, Project: espm-cloud-web,加入代码
<resource-ref> <res-ref-name>jdbc/DefaultDB</res-ref-name> <res-type>javax.sql.DataSource</res-type> </resource-ref>
修改JpaEntityManagerFactory.java
Path: src/main/java/>com.sap.espm.model.web>
JpaEntityManagerFactory.java, Project: espm-cloud-web加入代码
public static synchronized EntityManagerFactory getEntityManagerFactory() throws NamingException, SQLException { if (entityManagerFactory == null) { final InitialContext ctx = new InitialContext(); final DataSource ds = (DataSource) ctx.lookup(DATA_SOURCE_NAME); final Map<String, Object> properties = new HashMap<String, Object>(); properties.put(PersistenceUnitProperties.NON_JTA_DATASOURCE, ds); entityManagerFactory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME, properties); Utility.setEntityManagerFactory(entityManagerFactory); } return entityManagerFactory; }
修改SalesOrderHeader.java
path: Java
src/main/java>com.sap.espm.model>SalesOrderHeader.java , Project : espm-cloud-jpa, 加入code
@Entity@Table(name = "ESPM_SALES_ORDER_HEADER")
末尾加入code (如果有error, Date 类型需要导入)
@PrePersist private void persist() { final Calendar cal = Calendar.getInstance(); final Date date = new Date(); cal.setTime(date); this.lifeCycleStatus = "N"; this.lifeCycleStatusName = "New"; int itemNumber = 10; this.netAmount = new BigDecimal("0.00"); this.taxAmount = new BigDecimal("0.00"); this.grossAmount = new BigDecimal("0.00"); this.createdAt = cal; for (final SalesOrderItem item : salesOrderItems) { item.setSalesOrderId(this.getSalesOrderId()); item.setItemNumber(itemNumber); itemNumber += 10; item.persist(); this.netAmount = this.netAmount.add(item.getNetAmount()).setScale(3); this.taxAmount = this.taxAmount.add(item.getTaxAmount()).setScale(3); this.grossAmount = this.grossAmount.add(item.getGrossAmount()).setScale(3); } }
修改persistence.xml
加入code
<class>com.sap.espm.model.SalesOrderHeader</class>
OData Services
Check Out OData Branch
Check Out Commit, 然后Reset
修改EspmServiceFactory
package: com.sap.espm.model.web, Project: espm-cloud-web,加入code
final ODataJPAContext oDataJPAContext = this.getODataJPAContext(); EntityManagerFactory emf; try { emf = JpaEntityManagerFactory.getEntityManagerFactory(); oDataJPAContext.setEntityManagerFactory(emf); oDataJPAContext.setPersistenceUnitName(PERSISTENCE_UNIT_NAME); oDataJPAContext.setJPAEdmExtension(new EspmProcessingExtension()); oDataJPAContext.setJPAEdmMappingModel("EspmEdmMapping.xml"); return oDataJPAContext; } catch (final Exception e) { throw new ODataRuntimeException(e); }
修改CustomerProcessor.java
package: com.sap.espm.model.function.impl, Project:
espm-cloud-web
@EdmFunctionImport(name = "GetCustomerByEmailAddress", entitySet = "Customers", returnType = @ReturnType(type = Type.ENTITY, isCollection = true)) public List<Customer> getCustomerByEmailAddress(@EdmFunctionImportParameter(name = "EmailAddress") final String emailAddress) throws ODataException
修改EspmProcessingExtension.java
package: com.sap.espm.model.web, Project:
espm-cloud-web
view.registerOperations(CustomerProcessor.class, null);
SAP UI5
Check Out UI5 Branch
修改manifest.json
path: src > main > webapp > webshop , Project: espm-cloud-web
"dataSources": { "espmDataModel": { "uri": "/espm-cloud-web/espm.svc", "type": "OData", "settings": { "odataVersion": "2.0" } } },
修改index.html
path: src > main > webapp > webshop, Project: espm-cloud-web
sap.ui.getCore().attachInit(function() { new sap.m.Shell({ app : new sap.ui.core.ComponentContainer({ height : "100%", name : "com.sap.espm.shop" }) }).placeAt("content"); });
修改Component.js
path: src > main > webapp > webshop, Project: espm-cloud-web
// set the device model, odata model and json model this.setModel(models.createDeviceModel(), "device"); var sServiceUrl = this.getMetadata().getManifestEntry( "sap.app").dataSources.espmDataModel.uri; var oEspmModel = new sap.ui.model.odata.ODataModel( sServiceUrl, { json : true, loadMetadataAsync : true }); this.setModel(oEspmModel, "EspmModel"); var oData = { ShoppingCart : [] }; var oModel = new sap.ui.model.json.JSONModel(oData); this.setModel(oModel, "Cart");
- Java Based Apps on SAP Cloud_2_开发ESPM
- Java Based Apps on SAP Cloud_0_系统准备
- Java Based Apps on SAP Cloud_1_总体介绍
- Building Hadoop-based Apps on YARN
- Based Off Versus Based On
- web application by java based on jsp, servlet and hibernate
- An LRU cache class based on java.util.LinkedHashMap
- SAP for Java 开发 起航。。。。。
- TypeSelect based on TypeTraits
- webkit based on win
- Spider based on scrapy
- iperf based on linux
- Dash Based On Plotly
- django installed on APPS and ...
- Based on or Basing on, 为何写作多用 Based on?
- content based routing based on header value
- Apps on SD Card on Froyo
- Apps on SD Card on Froyo
- java悬浮控件、IDE的悬浮窗(带代…
- Markdown用法
- 从Java到ABAP,OO部分的学习以及对…
- Java Based Apps on SAP Cloud_1_总体介绍
- java自己造编程IDE中,提示代码补…
- Java Based Apps on SAP Cloud_2_开发ESPM
- 对abap语言的一点猜想和逆推,优缺…
- NodeJS 安装
- 成功在Netbeans下配置hibernate并…
- Windows下 tensorflow安装
- (一)啥是Hibernate——成功在Netbe…
- 将博客搬至CSDN
- (二)详细代码教程——成功在Netbea…
- Git 与 GitHub 使用