|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
3 O9 T! i# a1 @/ w# \Teamcenter ITK二次开发源码分享: 创建一个工作流) b# ?- w: k, Z d; c. `
9 Z7 ~3 F) c: \ s+ k# F ^- /*HEAD CREATE_A_PROCESS CCC ITK */4 b* v& y# K3 w+ c+ Y9 S* Y
- #include <stdlib.h>
& J2 W5 n9 N; @. w) r% y - #include <TCcore/aom.h>3 T/ E5 C' A( c7 C5 q' C. O
- #include <tc/emh.h>4 Q4 M1 `( Y3 y) m9 e8 A* P
- #include <epm/epm.h>. H5 q6 b* \/ h+ J n
- #include <tc/tc.h>8 y" Q+ ~) J- |; y) L$ J
- #include <sa/tcfile.h>
: u& V4 Z! i5 C# ]! O. N1 J - #include <itk/mem.h>
: ^) h' ?4 g& D6 ?6 J& i' l% c+ [ - . C z4 i$ u7 G5 l H
- #define EXIT_FAILURE 1
; `# s" R% M$ U+ } - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))0 O8 _' }3 B9 B- V" r N
- static void report_error( char *file, int line, char *function, int return_code)
4 }8 u' N# O# E3 I% |0 ^. K - {7 O: s: k) ?' p* x3 x' b( s8 l6 o$ h
- if (return_code != ITK_ok)% z+ j [7 {. o0 }6 @4 ?# _
- { O6 }3 E2 r( h( b+ v3 v: }7 A2 O
- char *error_message_string;3 V G8 w; Y& C( _& h0 R
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
1 c6 G8 i! I1 B6 o, T9 } - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
6 G. I8 s7 p6 B* v$ e! n& S - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
1 w; a `) K, A3 R! `9 w - if(error_message_string) MEM_free(error_message_string);; Q: B( m8 M$ Z
- printf("\nExiting program!\n");
: Z" Y7 r' O) @& H- x- Y9 _ - exit (EXIT_FAILURE); 8 ^$ N1 Y$ E' H% ^. L
- }
$ t" g9 \. O8 m% O9 s - }
, @. M; A$ y" j; j
$ g. t$ G# h2 c: f- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
1 B+ V4 ]; M' W/ \! N - static void check_value( char *function, int value )
: _* P' H/ m6 `! ?$ E; w5 ]" t - {+ i6 S' r9 a# d( b9 E4 S: m( ~
- if (value == 0)
! k% ]0 [1 D5 c- {8 k5 p - {
3 ]% i4 G9 }* J: n( ?1 o" O - printf ("\t%s is NULL\n", function);
9 w2 r/ v- H& q1 I+ }+ ` - printf("\nExiting program!\n");7 B2 ~3 J" a ^
- exit (EXIT_FAILURE);
* ], p) R: w1 { f& ` - }- i) @$ w- N, R5 z4 J. n0 _% c
- }
$ f. a9 [" ]7 M
5 T) W* `5 i8 m$ W
8 e; E. s2 \' ~! p2 u3 T/ F- static void do_it(void)" N6 A4 N, U2 ~
- {
; G4 X; r" x' X2 ]$ W - int
c6 }5 A7 u; K _1 p2 v2 v - attach_types[1] = {1};
m! c4 w# g1 H e5 ?3 ]- X5 D - tag_t
8 E4 A; p) Z' I! H - rev = NULLTAG,
; A$ S) G4 q9 `+ q* o - process_template = NULLTAG, " u# x; H# F- C5 }; e7 X( {! P
- process = NULLTAG;0 k7 U. s2 {7 G8 B
- # T' d: U* f+ T
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );4 O: I# ~$ m" Q* b5 m* ?: v7 @, d/ S
- EXIT_IF_NULL( rev );2 q% h9 \% R! _: t5 ]$ f
) k8 Q; o1 h" p. w- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 8 v: X! z, F* B" @8 u
- EXIT_IF_NULL( process_template );
l5 T+ _% T' m" h' M# P/ W8 B
7 ]- _) e2 T _ j& V8 Y* k, \- 4 n7 ^% L0 A% l6 K
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 8 E) r# Q8 t! |- }
- attach_types, &process) );
I! e9 w/ k' }; q3 H$ R - 5 Y/ ?+ K1 G& x& k$ ]
- EXIT_IF_NULL( process );
$ _. `) p# A1 J, I" P - }
8 T0 p" Y7 J5 W
/ W0 g) j% _1 {3 V8 b2 K5 u2 q6 z- int ITK_user_main(int argc, char* argv[])6 r! Q7 G; k: f- d" c2 |# a1 H
- {' s p6 X) a: N5 T7 b7 z
- int
Y# s! X7 f1 R8 X/ N - status = 0;
R) p/ ] ]7 x. f8 S - 1 s: S! s# N( M# E$ Y
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
' j: k: v4 A8 ? [ - status = ITK_auto_login();
0 B0 g/ l' N) _ - ! z, ^7 O+ N2 }3 Q4 J6 j
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");) k8 `1 _' S. d
- else
8 X! @ y9 V8 c# e' C( p8 B - {
/ m2 J! s& _4 W! ^# Z Z" ~: B - printf("\nLogin successful!\n\n"); F' X- s$ Y& d4 s1 z% T
- ITK_set_journalling(TRUE);
2 h8 X" `- f4 {9 b4 L! q - do_it();; D9 v6 A6 V! f& ]9 E5 `
- }6 q+ y/ O! O9 U) R
- ITK_exit_module(TRUE);% _1 W9 j% Y& w/ R: P# n4 q1 U/ A
- return status; J% r, n7 }- X( ^( @& }$ e
- }
复制代码
2 t3 }' i) A4 j3 L+ d8 r1 N. d& A+ Q7 Z' y6 c; E
7 I0 z3 {! N( `. B6 m/ X# r
|
|