|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
$ E. C( _9 R8 u/ c# N8 Y
Teamcenter ITK二次开发源码分享: 创建一个工作流& m8 I/ x. R* m$ @- e2 {' q1 M
- H# f1 }+ F) C7 [- w- /*HEAD CREATE_A_PROCESS CCC ITK */ v: \4 P: k: v; Q2 H" e( H
- #include <stdlib.h>5 F3 P) ~, q1 J/ ]$ o9 {
- #include <TCcore/aom.h>
7 k6 U) O" Y& L5 d; Y - #include <tc/emh.h>4 ~' o) J6 j3 {+ s/ ^5 G2 u
- #include <epm/epm.h>% [: o; u) M8 P$ M8 ?7 y
- #include <tc/tc.h>6 W& D# O( o/ z& S& J
- #include <sa/tcfile.h>
- b1 r1 M! L% ?( |% j: K# ? ^4 o y - #include <itk/mem.h>
) ?& Y1 s9 Z/ U( @1 {
A( o3 }8 g* l2 C1 [- #define EXIT_FAILURE 1 ; i; X- Y: {9 s0 U4 }& E, i
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
/ l0 R/ F/ e6 k6 W8 T - static void report_error( char *file, int line, char *function, int return_code)0 k# B3 P2 ]( X# c* V
- {
2 P. O b; x( X% p - if (return_code != ITK_ok)
& g* H. I$ y' Y' { - {0 }+ s: _& H' p' [9 p; i
- char *error_message_string;, ~! k/ J7 r/ e/ H
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);3 K, X, h) ^! a. E0 D
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
. b! t. y4 X3 _5 B& b% _4 w! ]+ o - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
2 [5 a. J \% j+ b - if(error_message_string) MEM_free(error_message_string);( r! H! p$ j* T8 J
- printf("\nExiting program!\n");1 z0 w/ T: s# G
- exit (EXIT_FAILURE); 8 A2 Y N" {( w+ w6 u0 f8 E
- }
! n/ ]8 S$ e6 U+ x/ F9 Y# t2 a - }) F" t; w* D3 h8 n1 {
- , \0 y& L. p# P, }6 Y$ i
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))2 U4 H3 ?8 x$ r1 ^6 f6 H
- static void check_value( char *function, int value )' ~9 O+ ?1 U& l1 }. A
- {
2 O n5 c5 C4 B- v' b! k; M - if (value == 0)
8 C: R4 z9 ^( H% r - {
* B2 M/ B- |# @* u% ?2 J - printf ("\t%s is NULL\n", function);
* e1 z/ B q) J- S - printf("\nExiting program!\n");0 R8 _( r X3 n0 v# u
- exit (EXIT_FAILURE); , v9 |! ?$ V6 P% q( L9 Y3 J
- }+ y5 e& m! | X& a
- }. z( R: R& q* T4 P; e* ~
- , [! ~% v* V } ?1 P+ C3 j
, k$ ^! I% g3 o# a) o! v9 [# Z- static void do_it(void)# @* i1 N r) U
- {0 ^# F9 x! f3 `: B: S, n) [
- int
, i7 D) D" E8 j3 k8 [, Y7 \$ y - attach_types[1] = {1};0 S S ~6 ]3 e( y
- tag_t " i4 H/ f6 l. c) B! M' E3 H
- rev = NULLTAG,
4 V1 T2 I/ p9 }2 C - process_template = NULLTAG,
$ Y1 A. @8 z" S7 a7 E* w) p6 o - process = NULLTAG;; \6 ` c6 i$ Q: n
+ r7 ^+ V% [5 w; f( @' Z/ v- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
/ |# ^# J ^4 o; s; k% C. U0 D q- D' @ - EXIT_IF_NULL( rev );* r0 N$ M" }* ?7 L" V
- 4 u6 E6 f9 \9 _" }. N
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); % j* o; }! E/ l% x% F* H' c
- EXIT_IF_NULL( process_template );
0 @- ? V, |$ o( d; J4 y7 p
, P0 U; y, [$ i0 W
" D& J# {1 v- t4 j- _1 }( c/ D- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
4 Z3 B5 \/ ]4 ]4 m - attach_types, &process) );" y& |$ J8 r. s" \( |% ?9 Z4 w" }
- ! s/ ]. g& R& G7 u b
- EXIT_IF_NULL( process );
3 e5 f, f6 @! q& T( x& W c# ~ - }
3 z/ Q6 V* ^' C. w
- x3 ^4 p" P3 m/ e) _ _- int ITK_user_main(int argc, char* argv[])9 B! J4 S5 X- v: Q' x+ U5 x& D6 _
- {4 o# S; K9 [% P- d2 C
- int: K# U# ~9 d7 F' w4 A* G: f* r
- status = 0; 0 R" H. P P% {
- ' x" ?' |$ U9 V8 I- J
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
( {- }% o& x2 G- m - status = ITK_auto_login();
" x" `% c3 t1 n- K w* x, V -
+ K+ S" l! ^" K N8 a& @ - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");! i+ B* a% g1 q {
- else) R$ e3 K* ^' j# `3 H
- {
' D# X3 l1 c, f: N5 S/ \ - printf("\nLogin successful!\n\n");
" R h# J/ I# S, ]: S+ n - ITK_set_journalling(TRUE);8 N. z" \: c" r2 F- I# X
- do_it();
0 U7 ]6 R/ r9 l* V5 d a - }+ _8 f# f4 u5 Y" E6 G6 Z5 T! ~
- ITK_exit_module(TRUE);
" g( ^ s c* F0 Q - return status;
+ n# |9 S+ J8 `# d' a6 p; W) N9 m& h - }
复制代码
9 V1 {$ ~+ H7 X( e& U2 u+ K) o: I) L/ c% ~" T
( }3 p/ P8 t A" G2 H! r
|
|