Oracle EBS 如何设置事务处理分配行金额、成本和资源费率等等数字小数点位数?

 通常事务处理的分配行金额、采购单价、成本和资源费率等等数字的小数点位数,在想设置添加小数点位数时候,往往误认在Oracle EBS配置文件中设置,其实与账薄的设置本位币有关系。

例如下图,当Resource Cost的Resource Unit Cost的小数点超过5位提示错误
Oracle EBS 如何设置事务处理分配行金额、成本和资源费率等等数字小数点位数?_第1张图片

解决方法:设置本位币的扩展精确度,假设本位币为CNY。

币种导航:GL/Setup/Currencies/Default 如下图
Oracle EBS 如何设置事务处理分配行金额、成本和资源费率等等数字小数点位数?_第2张图片

若以后开发中某一些单价或金额相关限制与准标系统保持一致,则可以调用如下代码

declare
  currency_code VARCHAR2(15) := 'CNY'; --本位币
  precision     NUMBER; --精确度
  ext_precision NUMBER; --扩展精确度
  min_acct_unit NUMBER; --最小可计帐单位
  mask          VARCHAR2(80); --格式
begin
  /*
  --Form开发时,调用CSTCORE.pll库文件
  currency_code := RTRIM(CST_GLOBALS.CURRENCY_CODE); 
  */
  currency_code := 'CNY';
  FND_CURRENCY.GET_INFO(currency_code,
                        precision,
                        ext_precision,
                        min_acct_unit);
  dbms_output.put_line('Currency:' || currency_code);
  dbms_output.put_line('precision:' || precision);
  dbms_output.put_line('precision:' || ext_precision);
  dbms_output.put_line('precision:' || min_acct_unit);
  FND_CURRENCY.BUILD_FORMAT_MASK(format_mask   => mask,
                                 field_length  => 38, ---数字最大长度
                                 precision     => ext_precision,
                                 min_acct_unit => min_acct_unit);
  dbms_output.put_line('Format Mask:' || mask);
End;

你可能感兴趣的:(Oracle EBS 如何设置事务处理分配行金额、成本和资源费率等等数字小数点位数?)