当前位置 : 主页 > 编程语言 > java >

Primavera Unifier 高级公式使用分享

来源:互联网 收集:自由互联 发布时间:2022-09-29
Oracle Primavera Unifier虽然很强大,但在早期版本中因数据处理比较死板还是有些挺多争议,而高级公式这个功能的的加入一定程度上就提高了数据处理的灵活性,根据一朋友的召唤下,这


Primavera Unifier 高级公式使用分享_高级公式

Oracle Primavera Unifier 虽然很强大,但在早期版本中因数据处理比较死板还是有些挺多争议,而高级公式这个功能的的加入一定程度上就提高了数据处理的灵活性,根据一朋友的召唤下,这里简单分享一个案例

(PS. 此功能去年20.12 版本上即已加入)

需求:需要一个字段同时体现工单号及项目编号,且格式为 “工单号 / 项目编号”

拿到这个课题自然而且想到组成这个字段需要3个独立的关键要素,即:

  • 工单号
  • /
  • 项目编号

其中工单号及项目编号显然是手动输入,/ 作为连接符 可以通过一个静态的文本写入“ / ”(注意/前后各有一空格)

确认好思路后即准备建立对应的要素,(为方便理解,要素ID直接用了中文拼音)

  • 工单号:QZ_gongdanhao
  • /:PU_lianjiefu_xiegan
  • 项目编号:GC_fenxiangbianhao 

针对需要组合的要素使用高级公式

Primavera Unifier 高级公式使用分享_PU_02

 使用字符串函数 concat(str1, str2)

Primavera Unifier 高级公式使用分享_高级公式_03

 需要注意的是concat 只能同时接上两个字符串,因此 concat(工单号,/ )连接后将作为一个新的str再与项目编号会重新组合连接

Primavera Unifier 高级公式使用分享_unifier_04

 进行错误检查,保存关闭,发布BP后 最后效果如下

Primavera Unifier 高级公式使用分享_primavera_05

如此,效果达成!

看到这里,可以发现,使用固定公式是需要具备一定的IT开发基础,否则可能想不到是用concat来实现该功能,不过有总比没有的强

... 

当然,还有其他公式也是使用类似的方法,相信如果你具备JAVA基础基本都难不倒你

以下是我从ORACLE HELP 搜寻的对应内容(基于 Unifier uDesigner User Guide Version 21)

搜索关键词:Advanced Formulas

Primavera Unifier 高级公式使用分享_高级公式_06

核心内容已贴上,如下,希望对感兴趣的你有所帮助

 String 字符串类别

Function

Tooltip

(indexOf(String, int))

Starting point of a string within another string starting at a defined point in the string.

(indexOf(String))

Starting point of a string within another string starting at the beginning of the string.

(length())

Length of a string.

Formating a numeric field to a string, for example: numeric value of 9 with a format of "00000.00" would result in a string of "00009.00".

(startsWith(String, int))

Checking to ensure if a string starts within a defined string starting from a defined index. Needs to support indexOf.

(startsWith(String))

Checking to ensure if a string starts within a defined string.

(endsWith(String))

Checking to ensure if a string ends with a defined string.

(substring(int))

Pulling a substring from another string starting at a defined point till the end. This needs to support indexOf.

(substring(int, int))

Pulling a substring from another string starting at a defined point till a defined point in the string. This needs to support indexOf.

(concat(String))

Concatenating stings including being able to define numeric fields as strings.

(contains(String))

Checking to ensure if a string contains another string.

Comparing strings

Not available.

 Numeric 数字类别

Function

Tooltip

(toString(format))

Converting a number or currency to a string with a defined format.

(abs())

Absolute value of a number

(sqrt())

Square root of a number.

(power(int))

Raised to the power.

(log())

Logarithm Base 10.

(ln())

Natural Logaritm.

(min(number, ….))

Minimum of a set of numbers.

(max(number, ….))

Maximum of a set of numbers.

(ceil())

Round up to the smallest integer that is greater than or equal to the value of the field.

(floor())

Round down to the largest integer that is less than or equal to the value of the field.

(round(int))

Round to the number of decimal places.

Comparingnumbers =, !=, >, >=, <, <=

Not available.

补充 详细功能

String Functions

Numeric Functions

Date Functions

compare(str1,str2)

abs(num)

date(year,month,day)

compareIgnoreCase(str1,str2)

max(num1,num2)

day(date)

concat(str1,str2)

min(num1,num2)

edate(date,months)

contains(str,search)

ceil(num)

eomonth(date,months)

containsAny(str,search1,search2,...)

floor(num)

month(date)

containsIgnoreCase(str,search)

log(num)

now()

endsWith(str,suffix)

log10(num)

today()

endsWithIgnoreCase(str,suffix)

pow(base,exponent)

weekday(date)

indexOf(str,search)

round(num,places)

weeknum(date)

indexOfAny(str,search1,search2,...)

sqrt(num)

year(date)

indexOfIgnoreCase(str,search)

isNumber(num)

addDays(date,amount)

isAlpha(str)

numberFormat(num,pattern)

addHours(date,amount)

isBlank(str)

toDouble(num)

addMonths(date,amount)

isEmpty(str)

toInt(num)

addWeeks(date,amount)

isNumeric(str)

toLong(num)

addYears(date,amount)

isNumericSpace(str)

cos(num)

dateDiff(start,end)

lowerCase(str)

sin(num)

dateFormat(date,pattern)

upperCase(str)

tan(num)

isSameDay(date1,date2)

matches(str,regex)

acos(num)

toLong(date)

left(str,len)

asin(num)

toDate(long)

leftPad(str,size)

atan(num)


leftPad(str,size,padStr)

cosh(num)


mid(str,pos,len)

sinh(num)


right(str,len)

tanh(num)


rightPad(str,size)



rightPad(str,size,padStr)



replace(str,search,replacement)



replaceAll(str,regex,replacement)



replaceFirst(str,regex,replacement)



startsWith(str,prefix)



startsWithIgnoreCase(str,prefix)



size(str)



strip(str)



substring(str,start)



substring(str,start,end)



truncate(str,maxlen)



以上只是一个高级公式运用示例,如有其他场景运用无法实现/或不知无法实现可向我咨询。

 这个行业的分享不多,希望更多感兴趣的朋友一同参与,探讨或合作 !


上一篇:监控告警01--夜莺部署与接入
下一篇:没有了
网友评论