2093: * Pseudo-codes: *
2094: * x_return_status := FND_API.G_RET_STS_SUCCESS;
2095: * FND_MSG_PUB.Count_And_Get( p_count => x_msg_count, p_data => x_msg_data);
2096: *
2097: * call INV_LOT_SEL_ATTR.is_enabled to see if the lot attributes is enabled for this
2098: * item/org/category combination
2099: *
2100: * if no lot attributes is enabled then
2101: * return validation status 'Y', we don't need to validate any attributes.
2139: * end if;
2140: * -- parent lot does not have attributes and user does not supply attributes
2141: * -- for resulting lots.
2142: * -- use default lot attributes.
2143: * Call inv_lot_sel_attr.get_default to get the default lot attributes
2144: *
2145: * if( l_attributes_default_count > 0 ) then
2146: * for i in 1..l_attributes_default_count LOOP
2147: * for j in 1..g_lot_attributes_tbl.count LOOP
2163: * -- Get Contexts
2164: * fnd_dflex.get_contexts(v_flexfield, v_contexts);
2165: * -- Get Context Value.
2166: * if g_lot_attributes_tbl(9).column_value is null then
2167: * inv_lot_sel_attr.get_context_code(l_context_value,
2168: * p_organization_id,p_inventory_item_id,l_attributes_name);
2169: * g_lot_attributes_tbl(9).column_value := l_context_value;
2170: * else
2171: * l_context_value := g_lot_attributes_tbl(9).column_value;
2224: x_return_status OUT NOCOPY VARCHAR2
2225: , x_msg_count OUT NOCOPY NUMBER
2226: , x_msg_data OUT NOCOPY VARCHAR2
2227: , x_validation_status OUT NOCOPY VARCHAR2
2228: , x_lot_attr_tbl OUT NOCOPY inv_lot_sel_attr.lot_sel_attributes_tbl_type
2229: , p_lot_number IN VARCHAR2 --parent lot
2230: , p_organization_id IN NUMBER
2231: , p_inventory_item_id IN NUMBER
2232: , p_parent_lot_attr_tbl IN inv_lot_sel_attr.lot_sel_attributes_tbl_type
2228: , x_lot_attr_tbl OUT NOCOPY inv_lot_sel_attr.lot_sel_attributes_tbl_type
2229: , p_lot_number IN VARCHAR2 --parent lot
2230: , p_organization_id IN NUMBER
2231: , p_inventory_item_id IN NUMBER
2232: , p_parent_lot_attr_tbl IN inv_lot_sel_attr.lot_sel_attributes_tbl_type
2233: , p_result_lot_attr_tbl IN inv_lot_sel_attr.lot_sel_attributes_tbl_type
2234: , p_transaction_type_id IN NUMBER
2235: )
2236: IS
2229: , p_lot_number IN VARCHAR2 --parent lot
2230: , p_organization_id IN NUMBER
2231: , p_inventory_item_id IN NUMBER
2232: , p_parent_lot_attr_tbl IN inv_lot_sel_attr.lot_sel_attributes_tbl_type
2233: , p_result_lot_attr_tbl IN inv_lot_sel_attr.lot_sel_attributes_tbl_type
2234: , p_transaction_type_id IN NUMBER
2235: )
2236: IS
2237: l_attributes_name VARCHAR2 (50) := 'Lot Attributes';
2240: v_contexts fnd_dflex.contexts_dr;
2241: v_segments fnd_dflex.segments_dr;
2242: l_attributes_default_count NUMBER;
2243: l_enabled_attributes NUMBER;
2244: l_attributes_default inv_lot_sel_attr.lot_sel_attributes_tbl_type;
2245: v_context_value mtl_flex_context.descriptive_flex_context_code%TYPE;
2246: v_colname VARCHAR2 (50);
2247: l_context_value VARCHAR2 (150);
2248: l_return_status VARCHAR2 (1);
2275: );
2276: END IF;
2277:
2278: l_enabled_attributes :=
2279: inv_lot_sel_attr.is_enabled (p_flex_name => l_attributes_name
2280: , p_organization_id => p_organization_id
2281: , p_inventory_item_id => p_inventory_item_id
2282: );
2283:
2469: -- parent lot does not have attributes.
2470: -- use default lot attributes.
2471: IF (l_debug = 1)
2472: THEN
2473: print_debug ('Calling inv_lot_sel_attr.get_default'
2474: , 'Validate_Attributes'
2475: );
2476: END IF;
2477:
2474: , 'Validate_Attributes'
2475: );
2476: END IF;
2477:
2478: inv_lot_sel_attr.get_default
2479: (x_attributes_default => l_attributes_default
2480: , x_attributes_default_count => l_attributes_default_count
2481: , x_return_status => l_return_status
2482: , x_msg_count => l_msg_count
2583: 'LOT_ATTRIBUTE_CATEGORY'
2584: AND g_lot_attributes_tbl (i).column_value IS NULL
2585: )
2586: THEN
2587: inv_lot_sel_attr.get_context_code (l_context_value
2588: , p_organization_id
2589: , p_inventory_item_id
2590: , l_attributes_name
2591: );
2967: x_return_status OUT NOCOPY VARCHAR2
2968: , x_msg_count OUT NOCOPY NUMBER
2969: , x_msg_data OUT NOCOPY VARCHAR2
2970: , x_validation_status OUT NOCOPY VARCHAR2
2971: , x_ser_attr_tbl OUT NOCOPY inv_lot_sel_attr.lot_sel_attributes_tbl_type
2972: , p_ser_number IN VARCHAR2
2973: , p_organization_id IN NUMBER
2974: , p_inventory_item_id IN NUMBER
2975: , p_result_ser_attr_tbl IN inv_lot_sel_attr.lot_sel_attributes_tbl_type
2971: , x_ser_attr_tbl OUT NOCOPY inv_lot_sel_attr.lot_sel_attributes_tbl_type
2972: , p_ser_number IN VARCHAR2
2973: , p_organization_id IN NUMBER
2974: , p_inventory_item_id IN NUMBER
2975: , p_result_ser_attr_tbl IN inv_lot_sel_attr.lot_sel_attributes_tbl_type
2976: )
2977: IS
2978: l_attributes_name VARCHAR2 (50) := 'Serial Attributes';
2979: v_flexfield fnd_dflex.dflex_r;
2981: v_contexts fnd_dflex.contexts_dr;
2982: v_segments fnd_dflex.segments_dr;
2983: l_attributes_default_count NUMBER;
2984: l_enabled_attributes NUMBER;
2985: l_attributes_default inv_lot_sel_attr.lot_sel_attributes_tbl_type;
2986: v_context_value mtl_flex_context.descriptive_flex_context_code%TYPE;
2987: v_colname VARCHAR2 (50);
2988: l_context_value VARCHAR2 (150);
2989: l_return_status VARCHAR2 (1);
3008: l_validation_status := 'Y';
3009: x_return_status := fnd_api.g_ret_sts_success;
3010: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
3011: l_enabled_attributes :=
3012: inv_lot_sel_attr.is_enabled (p_flex_name => l_attributes_name
3013: , p_organization_id => p_organization_id
3014: , p_inventory_item_id => p_inventory_item_id
3015: );
3016:
3084:
3085:
3086: -- use default serial attributes.
3087: BEGIN
3088: inv_lot_sel_attr.get_default
3089: (x_attributes_default => l_attributes_default
3090: , x_attributes_default_count => l_attributes_default_count
3091: , x_return_status => x_return_status
3092: , x_msg_count => x_msg_count
3194: 'SERIAL_ATTRIBUTE_CATEGORY'
3195: AND g_lot_ser_attributes_tbl (i).column_value IS NULL
3196: )
3197: THEN
3198: inv_lot_sel_attr.get_context_code (l_context_value
3199: , p_organization_id
3200: , p_inventory_item_id
3201: , l_attributes_name
3202: );