cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - Stay updated on what is happening on the PTC Community by subscribing to PTC Community Announcements. X

Export Control Regular Expressions

avillanueva
22-Sapphire I

Export Control Regular Expressions

Anyone dealing with export control regulations using Windchill IBA (attributes) might find this useful. I did not see it anywhere on the web so figured I would post. I used https://regex101.com/ to test but if you find errors, let me know. 

#Pattern for ITAR/USML classification field
USMLRegEx=^(X{0,2})(I[XV]|V?I{0,3}).*$
#Pattern for ITAR/USML tech data classification field
USMLTechDataRegEx=^I\(a\)|II\(k\)|III\(e\)|IV\(i\)|V\(j\)|VI\(g\)|VII\(h\)|VIII\(i\)|IX\(e\)|X\(e\)|XI\(d\)|XII\(f\)|XIII\(i\)|XIV\(m\)|XV\(f\)|XVI\(e\)|XVII\(a\)|XVIII\(g\)|XIX\(g\)|XX\(d\)|XXI\(b\)$
#Pattern for EAR/CCL classification field
CCLRegEx=^\d[ABCD]\d\d\d.*|EAR99$
#Pattern for EAR/CCL tech data classification field
CCLTechDataRegEx=^\d[E]\d\d\d.*|EAR99$

How can this be useful? Our requirement is to use security labels to denote Jurisdiction. An IBA attribute (String) holds the classification attribute. This can be synced without outside systems or flowed on to CAD drawings or docs. It was necessary to do a cursory validation that the string entered is a valid code. Since the USML and CCL are ever changing, a regular expression seems logical since there is a general pattern that should be expected. While its not an exact list, it should capture most data entry issues. There are 21 USML categories but  I think the pattern will accept up to 29 since its based on a pattern for recognizing roman numerals. I know it does not capture SME or (*) addition for tech data but that is a small case.

 

There is a regular expression constraint that these should be easily popped into but I have not tested that yet. I hope you find this useful.

1 ACCEPTED SOLUTION

Accepted Solutions

Minor Correction:

USMLRegEx=^(X{0,2})(I[XV]|V?I{0,3})\(.*$

 

found in testing that anything that began with roman numeral would be accepted but in true fashion, roman numerals were followed by the left parenthesis.

View solution in original post

1 REPLY 1

Minor Correction:

USMLRegEx=^(X{0,2})(I[XV]|V?I{0,3})\(.*$

 

found in testing that anything that began with roman numeral would be accepted but in true fashion, roman numerals were followed by the left parenthesis.

Top Tags