用友U9-UAP:元数据、事务与开发特性详解

需积分: 5 0 下载量 15 浏览量 更新于2024-06-16 收藏 1.85MB PPTX 举报
用友U9-UAP是一款强大的企业级应用程序开发平台,其基础特性涵盖了多个关键领域,旨在帮助企业实现高效的信息管理。以下是U9-UAP的一些核心功能和概念: 1. **事务处理**:U9-UAP支持事务处理,确保在执行一系列操作时数据的一致性和完整性,这是任何企业应用系统的基础,它能保证数据的准确性和可靠性。 2. **元数据管理**:元数据是描述数据的数据,包括实体(如客户、订单)、关联关系(如一对一、一对多)、组合和继承关系,以及属性类型(如日期、数值)。元数据表(如p_RebuildExtEnum)和数据字典工具(如UBF对象浏览器、ClassView)用于管理这些结构,帮助开发者理解数据模型。 3. **服务与数据传输**:BP(业务过程)和SV(服务)是数据传输对象,它们支持服务接口,方便与其他系统交互。数据字典查询工具提供了数据的引用查询和数据样本,而TVP(Table-Valued Parameters)用于处理批量数据传递。 4. **ORM框架与持久化**:U9-UAP采用了ORM(Object-Relational Mapping)框架,简化了数据库操作的编程,支持批量提交TVP和敏感性记录的管理。此外,通过乐观锁和悲观锁机制来控制并发更新,提高数据一致性。 5. **OQL与表达式**:OQL(Object Query Language)是一种查询语言,用于在业务逻辑层进行数据检索和处理,表达式函数则允许用户创建自定义函数。这些功能广泛应用于权限管理、预警、通知、人力资源等场景。 6. **插件开发与集成**:UAP支持扩展和集成,包括与第三方应用的集成,通过WebService标准接口实现。此外,还可以扩展表单的功能,比如添加新按钮、流程,以及重新处理数据初始化逻辑。 7. **模型驱动设计**:U9-UAP采用模型驱动的设计方法,强调元数据和业务逻辑的分离,使得系统设计更加灵活和易于维护。 8. **SOA支持**:U9-UAP是基于SOA(Service-Oriented Architecture)架构,这意味着它能够处理分布式系统中的服务交互,实现数据层、业务逻辑层和服务层的清晰划分。 9. **组件库与验证**:组件库提供了丰富的预定义组件和校验功能,简化了业务流程的搭建和验证,有助于提升开发效率。 在进行U9-UAP的培训时,学员会学习如何利用这些基础特性构建和管理企业级应用程序,掌握元数据管理、事务处理、服务交互等关键技能。通过课堂练习,他们将有机会实践这些功能,深入理解其工作原理和应用场景。

static int sbsa_uart_probe(struct platform_device *pdev) { struct uart_amba_port *uap; struct resource r; int portnr, ret; int baudrate; / * Check the mandatory baud rate parameter in the DT node early * so that we can easily exit with the error. */ if (pdev->dev.of_node) { struct device_node *np = pdev->dev.of_node; ret = of_property_read_u32(np, "current-speed", &baudrate); if (ret) return ret; } else { baudrate = 115200; } portnr = pl011_find_free_port(); if (portnr < 0) return portnr; uap = devm_kzalloc(&pdev->dev, sizeof(struct uart_amba_port), GFP_KERNEL); if (!uap) return -ENOMEM; ret = platform_get_irq(pdev, 0); if (ret < 0) { if (ret != -EPROBE_DEFER) dev_err(&pdev->dev, "cannot obtain irq\n"); return ret; } uap->port.irq = ret; #ifdef CONFIG_ACPI_SPCR_TABLE if (qdf2400_e44_present) { dev_info(&pdev->dev, "working around QDF2400 SoC erratum 44\n"); uap->vendor = &vendor_qdt_qdf2400_e44; } else #endif uap->vendor = &vendor_sbsa; uap->reg_offset = uap->vendor->reg_offset; uap->fifosize = 32; uap->port.iotype = uap->vendor->access_32b ? UPIO_MEM32 : UPIO_MEM; uap->port.ops = &sbsa_uart_pops; uap->fixed_baud = baudrate; snprintf(uap->type, sizeof(uap->type), "SBSA"); r = platform_get_resource(pdev, IORESOURCE_MEM, 0); ret = pl011_setup_port(&pdev->dev, uap, r, portnr); if (ret) return ret; platform_set_drvdata(pdev, uap); return pl011_register_port(uap); }linux内核uart驱动在设备注册时,使用acpi表定义的波特率来初始化串口,请根据我的要求和上述代码,在代码中添加这一功能

2023-06-07 上传