Period 010/2009 is not open for account type S and G/L 799999

本文尝试通过调整会计期间设置解决在SAP系统中使用MB1C进行库存数量增加时遇到的问题。作者首先发现系统不允许对特定会计期间进行操作,随后通过调整OB52中的设置来解决问题。
部署运行你感兴趣的模型镜像

上篇文章中,我维护了会计期间,这次我再用MB1C,movement type为561来增加几个物料的库存数量。

image

输入完这些信息后,按回车。

image

进来了,看样子,会计期间的问题确实是解决了。

image

输入Material和Quantity,按回车。变成这个画面。

image

同时系统提示了错误信息。

image

意思就是说,2009年10月的会计期间没有对account type S和G/L799999打开。噢,光打开会计期间还不行,还得打开对应account type和G/L的会计期间。

在命令行输入OB52,或者在路径中寻找这个Tcode。

image

image

这是OB52的画面。

我们使用的公司是1000,这个公司account对应的会计期间是到2004年,所以我无法过帐。

OB52中第二列account type的说明

image

+号是所有都适用的,即便是为每个account type单独指定了,仍然需要用这个+的

image

我把截止年份都改为2009年了。

点击image 。这回增加库存数量应该没问题了吧。

欲知结果如何,请看下篇博文叙述。

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

PROCEDURE product_complete_doc(p_pda_number IN VARCHAR2, --barcode 一笔单据的唯一ID x_status OUT VARCHAR2, --S 成功, E 错误 x_error_message OUT VARCHAR2) --错误信息 AS PRAGMA AUTONOMOUS_TRANSACTION; CURSOR c_check IS SELECT * FROM cuxhl2_bk_product_complete_t t WHERE t.status IN (g_init, g_check_e) AND t.pda_number = p_pda_number; CURSOR c_product IS SELECT * FROM cuxhl2_bk_product_complete_t t WHERE t.status = g_check_s AND t.pda_number = p_pda_number; header_type cux1_inv_trx_headers%ROWTYPE; line_type cux1_inv_trx_lines%ROWTYPE; l_row_number NUMBER; l_cnt NUMBER; v_days NUMBER; v_expiration_date DATE; v_production_date DATE; v_line_id NUMBER; v_pda_number VARCHAR2(200); v_seq_no NUMBER; v_distribution_account_id NUMBER; v_cst_category_id NUMBER; l_acct_period_id NUMBER; check_error EXCEPTION; BEGIN l_row_number := 0; --检验数据 --数据是否存在 SELECT COUNT(1) INTO l_cnt FROM cuxhl2_bk_product_complete_t t WHERE t.pda_number = p_pda_number; IF l_cnt = 0 THEN x_error_message := '未找到此单据'; v_line_id := NULL; v_pda_number := p_pda_number; RAISE check_error; END IF; --检查 transaction_type_id 是否都一样 SELECT COUNT(1) INTO l_cnt FROM (SELECT DISTINCT t.transaction_type_id FROM cuxhl2_bk_product_complete_t t WHERE t.pda_number = p_pda_number) t; IF l_cnt > 1 THEN x_error_message := '本单据中交易类型不一致'; v_line_id := NULL; v_pda_number := p_pda_number; RAISE check_error; END IF; --校验cost center是否一致 SELECT COUNT(1) INTO l_cnt FROM (SELECT DISTINCT t.cost_center FROM cuxhl2_bk_product_complete_t t WHERE t.pda_number = p_pda_number) t; IF l_cnt > 1 THEN x_error_message := '本单据成本中心不一致'; v_line_id := NULL; v_pda_number := p_pda_number; RAISE check_error; END IF; --校验申请人员 是否一致 SELECT COUNT(1) INTO l_cnt FROM (SELECT DISTINCT t.employee_id FROM cuxhl2_bk_product_complete_t t WHERE t.pda_number = p_pda_number) t; IF l_cnt > 1 THEN x_error_message := '本单据申请人员不一致'; v_line_id := NULL; v_pda_number := p_pda_number; RAISE check_error; END IF; FOR r_check IN c_check LOOP l_row_number := l_row_number + 1; --统一更新交易日期 IF l_row_number = 1 THEN UPDATE cuxhl2_bk_product_complete_t t SET t.transaction_date = SYSDATE WHERE t.pda_number = p_pda_number AND t.transaction_date IS NULL AND t.status IN (g_init, g_check_e); END IF; --转换mes 成品入库时间 BEGIN v_production_date := to_date(r_check.mestransactiondate, 'yyyy-mm-dd hh24:mi:ss'); EXCEPTION WHEN OTHERS THEN v_production_date := NULL; x_error_message := 'MES成品入库时间错误'; v_line_id := r_check.line_id; v_pda_number := NULL; RAISE check_error; END; DECLARE v_days NUMBER; BEGIN SELECT nvl(shelf_life_days, 0) INTO v_days FROM mtl_system_items_b WHERE inventory_item_id = r_check.inventory_item_id AND organization_id = r_check.organization_id AND lot_control_code = 2; EXCEPTION WHEN OTHERS THEN v_days := 0; END; v_expiration_date := NULL; IF r_check.transaction_action_id = '27' --入库 THEN IF v_days > 0 THEN v_expiration_date := trunc(v_production_date) + v_days; ELSE v_expiration_date := trunc(v_production_date) + 730; END IF; END IF; IF v_expiration_date IS NULL THEN x_error_message := 'Lot 失效日期错误'; v_line_id := r_check.line_id; v_pda_number := NULL; RAISE check_error; END IF; --校验EO lot的入库子库存 IF r_check.product_lot_type = 'EO' AND r_check.subinventory_code <> '1FGE' THEN x_error_message := 'EO lot 的子库存不是 1FGE,请检查!'; v_line_id := r_check.line_id; v_pda_number := NULL; RAISE check_error; END IF; IF r_check.product_lot_type <> 'EO' AND r_check.subinventory_code = '1FGE' THEN x_error_message := '1FGE 只能存放 EO lot,请检查!'; v_line_id := r_check.line_id; v_pda_number := NULL; RAISE check_error; END IF; ---added by summer 20250820 for FAB8 NPW IF r_check.product_lot_type = 'VT' AND r_check.subinventory_code like '1FG%' THEN x_error_message := 'FAB8 VT LOT不能放到成品库,请检查!'; v_line_id := r_check.line_id; v_pda_number := NULL; RAISE check_error; END IF; --获取 ccid BEGIN SELECT mic.category_id INTO v_cst_category_id FROM mtl_category_sets_v mcs, mtl_item_categories_view mic WHERE mcs.category_set_id = mic.category_set_id AND mcs.category_set_name = 'CST_Category' AND mic.inventory_item_id = r_check.inventory_item_id AND mic.organization_id = r_check.organization_id; EXCEPTION WHEN OTHERS THEN v_cst_category_id := NULL; x_error_message := '获取物料 CATEGORY ID 错误'; v_line_id := r_check.line_id; v_pda_number := NULL; RAISE check_error; END; IF v_cst_category_id IS NOT NULL THEN BEGIN SELECT code_combination_id INTO v_distribution_account_id FROM cux1_inv_trx_account WHERE organization_id = r_check.organization_id AND cost_category_id = v_cst_category_id AND transaction_type_id = r_check.transaction_type_id AND cost_center = r_check.cost_center AND enabled_flag = 'Y'; EXCEPTION WHEN OTHERS THEN v_distribution_account_id := NULL; x_error_message := '获取 帐户科目ID 错误'; v_line_id := r_check.line_id; v_pda_number := NULL; RAISE check_error; END; END IF; --检验成功 UPDATE cuxhl2_bk_product_complete_t t SET t.status = g_check_s, t.production_date = v_production_date, t.expiration_date = v_expiration_date, t.distribution_account_id = v_distribution_account_id, t.last_update_date = SYSDATE, t.last_updated_by = fnd_global.user_id WHERE t.line_id = r_check.line_id; END LOOP; COMMIT; --校验是否有全部校验成功 SELECT COUNT(1) INTO l_cnt FROM cuxhl2_bk_product_complete_t t WHERE t.status <> g_check_s AND t.pda_number = p_pda_number; IF l_cnt > 0 THEN x_error_message := '存在未校验成功的数据'; x_status := 'E'; RETURN; END IF; l_row_number := 0; FOR r_product IN c_product LOOP l_row_number := l_row_number + 1; --插入头 IF l_row_number = 1 THEN --seq_no BEGIN SELECT MAX(seq_no) INTO v_seq_no FROM cux1_inv_trx_headers t WHERE t.seq_no LIKE to_char(SYSDATE, 'YYYYMMDD') || '%'; EXCEPTION WHEN OTHERS THEN v_seq_no := NULL; END; IF v_seq_no IS NOT NULL THEN v_seq_no := to_char(to_number(v_seq_no) + 1); ELSE v_seq_no := to_char(SYSDATE, 'YYYYMMDD') || '001'; END IF; SELECT cux1_inv_trx_headers_s.nextval INTO header_type.header_id FROM dual; header_type.seq_no := v_seq_no; header_type.pda_no := r_product.pda_number; header_type.organization_id := r_product.organization_id; header_type.transaction_type_id := r_product.transaction_type_id; header_type.transaction_date := r_product.transaction_date; header_type.cst_dpt_no := r_product.cost_center; header_type.trx_user_id := r_product.employee_id; header_type.creation_date := SYSDATE; header_type.created_by := g_user_id; header_type.last_updated_by := g_user_id; header_type.last_update_date := SYSDATE; header_type.last_update_login := g_login_id; header_type.attribute1 := 'WMS'; --由WMS创建 INSERT INTO cux1_inv_trx_headers VALUES header_type; END IF; --获取period_id BEGIN SELECT oap.acct_period_id INTO l_acct_period_id FROM org_acct_periods_v oap WHERE oap.organization_id = r_product.organization_id AND oap.status IN ('Open', '打开') AND trunc(SYSDATE) BETWEEN oap.start_date AND oap.end_date; EXCEPTION WHEN no_data_found THEN l_acct_period_id := NULL; x_error_message := '当前库存期间未打开,请检查!'; x_status := 'E'; ROLLBACK; RETURN; END; --插入行 SELECT cux1_inv_trx_lines_s.nextval INTO line_type.line_id FROM dual; line_type.header_id := header_type.header_id; line_type.organization_id := r_product.organization_id; line_type.out_method := 0; line_type.inventory_item_id := r_product.inventory_item_id; line_type.required_quantity := r_product.qty; line_type.onhand_quantity := NULL; line_type.transaction_quantity := r_product.qty; line_type.uom := r_product.uom; line_type.transaction_date := r_product.transaction_date; line_type.subinventory_from := r_product.subinventory_code; line_type.locator_from := r_product.locator_id; --addedb by summer 20190611 BEGIN SELECT nvl(t.sourcevendorlotid, t.productlotnumber) --t.customerlotid INTO line_type.vendor_lot_number FROM cux2_mes_product_history t WHERE t.productlotnumber = r_product.lot_number AND t.status = 'NEW' AND t.sourcevendorlotid IS NOT NULL AND t.transferflag IS NULL AND rownum = 1; EXCEPTION WHEN OTHERS THEN line_type.vendor_lot_number := r_product.lot_number; END; line_type.lot_number := r_product.lot_number; line_type.expiration_date := r_product.expiration_date; line_type.transaction_source_type_id := r_product.transaction_source_type_id; line_type.transaction_type_id := r_product.transaction_type_id; line_type.transaction_action_id := r_product.transaction_action_id; line_type.acct_period_id := l_acct_period_id; line_type.distribution_account_id := r_product.distribution_account_id; line_type.remark := NULL; line_type.creation_date := SYSDATE; line_type.created_by := fnd_global.user_id; line_type.last_updated_by := fnd_global.user_id; line_type.last_update_date := SYSDATE; line_type.last_update_login := fnd_global.login_id; line_type.attribute1 := r_product.seq_id; line_type.attribute3 := 'COMPLETE'; line_type.attribute10 := r_product.shipcode; line_type.attribute11 := r_product.salesorder; line_type.attribute4 := r_product.foupid; line_type.attribute5 := r_product.lotduedate; line_type.attribute6 := r_product.hard_peg; line_type.attribute7 := r_product.product_lot_type; INSERT INTO cux1_inv_trx_lines VALUES line_type; --检验成功 UPDATE cuxhl2_bk_product_complete_t t SET t.status = g_doc_s, t.last_update_date = SYSDATE, t.last_updated_by = fnd_global.user_id, t.cux_header_id = header_type.header_id, t.cux_line_id = line_type.line_id WHERE t.line_id = r_product.line_id; --入库 UPDATE cux2_mes_product_history SET cux1_inv_trx_line_id = line_type.line_id, last_update_date = SYSDATE WHERE seq_id = r_product.seq_id AND status = 'NEW' AND TYPE = 'COMPLETE'; END LOOP; x_status := 'S'; COMMIT; EXCEPTION WHEN check_error THEN IF v_line_id IS NOT NULL THEN UPDATE cuxhl2_bk_product_complete_t t SET t.status = g_check_e, t.error_message = x_error_message, t.last_update_date = SYSDATE, t.last_updated_by = fnd_global.user_id WHERE t.line_id = v_line_id; ELSE UPDATE cuxhl2_bk_product_complete_t t SET t.status = g_check_e, t.error_message = x_error_message, t.last_update_date = SYSDATE, t.last_updated_by = fnd_global.user_id WHERE t.pda_number = v_pda_number; END IF; x_status := 'E'; COMMIT; WHEN OTHERS THEN x_status := 'E'; x_error_message := substr(SQLERRM, 1, 200); ROLLBACK; END product_complete_doc;提示获取 帐户科目ID错误,应该是什么原因,我应该怎么改
最新发布
09-18
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值