基于Item Template,导入Item数据

本文介绍如何使用ItemTemplate在Oracle库存管理系统中导入物品数据。主要包括查找模板ID、基于模板插入物品记录、运行导入程序等步骤。同时介绍了MTL_SYSTEM_ITEMS_INTERFACE表的作用及使用技巧。

基于Item Template,导入Item数据

1.查找到TEMPLATE_ID

SELECT * FROM MTL_ITEM_TEMPLATES_B b,MTL_ITEM_TEMPLATES_TL tl
WHERE b.TEMPLATE_ID = tl.TEMPLATE_ID
AND tl.TEMPLATE_NAME LIKE 'Purchased Item%';

2.基于模板插入Item

INSERT
INTO
  MTL_SYSTEM_ITEMS_INTERFACE
  (
    process_flag,
    set_process_id,
    transaction_type,
    organization_id,
    segment1,
    description,
    TEMPLATE_ID
  )
  VALUES
  (
    1,    --process_flag
    1,     --set_process_id
    'CREATE', --transaction_type
    204,  --organization_id
    'PTIAN1',  --Item Segment1
    'Testing Item Import With Template',  --Item description
    259  --Item TEMPLATE_ID
  );


INSERT
INTO
  MTL_SYSTEM_ITEMS_INTERFACE
  (
    process_flag,
    set_process_id,
    transaction_type,
    organization_id,
    segment1,
    description,
    TEMPLATE_ID
  )
  VALUES
  (
    1,    --process_flag
    1,     --set_process_id
    'CREATE', --transaction_type
    207,  --organization_id
    'PTIAN1',  --Item Segment1
    'Testing Item Import With Template',  --Item description
    259  --Item TEMPLATE_ID
  );

COMMIT; 

3.运行"Import Items" Program

也可以通过脚本来调用"Import Item" program,参见Script to Submit Item Import (INCOIN) using FND_REQUEST in Oracle Apps R12

4.Item数据成功生成



关于Item Interface表-MTL_SYSTEM_ITEMS_INTERFACE

MTL_SYSTEM_ITEMS_INTERFACE temporarily stores the definitions for inventory items, engineering items and purchasing items before loading this information into Oracle Inventory.
.
This table contains user friendly columns which allow you to easily enter your data as well as their corresponding foreign keys. Oracle Inventory will default column values you do not enter, after performing the proper validation. For example, you enter the ORGANIZATION_CODE, and Oracle Inventory will fill in the corresponding ORGANIZATION_ID for you. It is strongly recommended that users enter the segment information for the item instead of the item number.
.
You can also specifiy a TEMPLATE_ID to copy item attributes from.
.
Also, if you enter REVISION, Oracle Inventory will insert a record into MTL_ITEM_REVISIONS for your item.


转载请注明出处:http://blog.youkuaiyun.com/pan_tian/article/details/7751214

======EOF======

<think>嗯,用户想了解在自动化测试中如何导入数据,包括方法、示例、工具和框架。我需要先回忆一下相关的知识,然后组织成结构清晰的回答。 首先,数据导入在自动化测试中确实很重要,因为测试需要不同的数据来覆盖各种场景。常见的方法可能有直接使用测试框架的数据驱动功能,比如TestNG或JUnit的参数化测试,或者用外部文件如CSV、Excel来存储数据,然后在测试中读取。另外,数据库和API也是常见的数据源。 然后,工具方面,比如Postman可以导入JSON或CSV做API测试,Selenium可能需要结合其他库处理Excel。框架的话,Cypress和Robot Framework都支持数据驱动的测试,用户提到的引用[2]里提到了Cypress,可能需要提到这点。引用[3]提到API测试的五大问题,可能和导入数据有关联,比如数据准备和清理。 示例部分需要具体的代码片段,比如用Python的pytest参数化,或者用CSV文件加载数据。注意用户要求用中文回答,但代码示例中的注释可能需要保持英文或者用中文?不过通常代码中的注释还是英文居多,但用户没有特别要求,可能保持原样。 另外,用户还提到了工具和框架的具体例子,需要结合引用内容。比如引用[2]中的Cypress,可以说明如何使用它导入数据。引用[3]中的API测试平台可能需要处理数据导入的问题,比如使用预执行脚本或数据库操作。 需要注意用户提供的引用内容,引用[1]提到业务案例可能需要特定工具,所以在选择工具时要考虑业务需求。引用[3]的API测试五大问题,可能涉及数据生成和管理,这部分可以关联到数据导入的方法中。 还要考虑不同的测试类型,比如单元测试、接口测试、UI测试,导入数据的方式可能不同。比如接口测试可能需要准备请求体数据,而UI测试可能需要测试用户输入的不同数据集。 最后,生成相关问题,可能需要包括数据驱动测试、数据清理、工具比较等方向。要确保问题相关且有深度,帮助用户进一步探索。 总结一下,回答的结构应该分方法、工具、框架、示例,每个部分给出具体的例子,并适当引用提供的资料。需要检查是否符合用户要求的格式,比如数学表达式用$...$,独立公式用$$...$$,但这个问题可能不涉及数学公式,所以可能不需要。确保使用中文,代码块正确,引用标识自然添加。例如在提到Cypress时加上引用[^2],在讨论API测试时引用[^3]。</think>### 自动化测试中数据导入的完整指南 #### 一、数据导入的核心方法 1. **硬编码数据** 在测试脚本中直接定义测试数据集,适用于简单场景和小规模数据。 ```python # pytest示例 def test_login(): test_data = [{"username": "user1", "password": "123456"}, {"username": "admin", "password": "admin"}] for data in test_data: # 调用登录接口验证 ``` 2. **外部文件驱动**(通过文件格式存储测试数据) - **CSV/Excel** 使用`pandas`或`openpyxl`库读取结构化数据: ```python import pandas as pd data = pd.read_csv("test_data.csv") ``` - **JSON/YAML** 适合复杂数据结构,配合`json`或`PyYAML`库使用: ```json // test_data.json [{"scenario": "边界值测试", "input": 9999, "expected": "成功"}] ``` 3. **数据库集成** 通过ORM框架或数据库驱动直接操作测试数据: ```python # SQLAlchemy示例 from sqlalchemy import create_engine engine = create_engine('mysql://user:pass@localhost/testdb') result = engine.execute("SELECT * FROM test_cases") ``` 4. **API动态获取** 在测试前置步骤中调用数据生成接口: ```python # requests示例 import requests setup_response = requests.post('https://api/dataset', json={"type": "stress_test"}) test_data = setup_response.json() ``` #### 二、工具链与框架支持 | 工具类型 | 代表工具 | 数据导入特性 | 引用依据 | |----------------|--------------------------|---------------------------------------|----------------| | 接口测试工具 | Postman<sup>▲</sup> | Collection Variables + Data Files | | | Web测试框架 | Cypress<sup>◉</sup> | `fixture`文件夹自动加载JSON文件 | [^2] | | 移动测试平台 | Appium | 结合Excel实现数据驱动 | | | 通用测试框架 | Robot Framework<sup>★</sup> | `Test Template` +外部数据源 | | #### 三、企业级实践方案 1. **数据工厂模式** 使用独立服务生成测试数据流,通过消息队列(如Kafka)向测试系统推送数据包,支持压力测试场景。 2. **环境沙箱机制** 在Docker容器中预置数据镜像,通过`docker-compose`在测试开始时自动加载基准数据集: ```yaml services: testdb: image: postgres:14 volumes: - ./init_data.sql:/docker-entrypoint-initdb.d/init.sql ``` 3. **智能数据生成** 应用`Faker`库创建拟真数据,特别适合隐私合规要求高的场景: ```python from faker import Faker fake = Faker('zh_CN') test_user = { 'name': fake.name(), 'email': fake.email(), 'address': fake.address() } ``` #### 四、典型代码示例 ```python # pytest参数化进阶示例(结合Excel) import pytest from openpyxl import load_workbook def load_excel_data(): wb = load_workbook('test_data.xlsx') return [row for row in wb.active.iter_rows(values_only=True)] @pytest.mark.parametrize("username,password,expected", load_excel_data()) def test_login_parameterized(username, password, expected): # 执行登录断言 assert login(username, password) == expected ``` ```javascript // Cypress数据驱动测试 describe('购物车测试', () => { beforeEach(() => { cy.fixture('cartItems.json').as('testData') }) it('添加不同商品组合', function() { this.testData.forEach((item) => { cy.addToCart(item.sku, item.qty) .should('have.class', 'added') }) }) }) ``` #### 五、关键注意事项 1. **数据隔离**:使用事务回滚或数据库快照保证测试独立性 2. **数据清理**:通过`teardown`阶段自动清除测试残留数据 3. **数据版本化**:将测试数据集纳入版本控制系统管理 4. **性能优化**:对大数据集采用分页加载或懒加载策略[^1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值