|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
9 {2 e3 p$ i: z9 p% e
Teamcenter ITK二次开发源码分享: 创建一个工作流0 J7 p# V4 y' P5 z
8 \; _ e' v2 e5 @0 |
- /*HEAD CREATE_A_PROCESS CCC ITK */( D& ~! L" B, O' }1 |- Z
- #include <stdlib.h>
# w9 @" r! G1 S1 a, z% k - #include <TCcore/aom.h>
3 E' s \. R' i( ` - #include <tc/emh.h> v: {: u8 v8 {
- #include <epm/epm.h>
, `5 [" Z4 }8 x8 o# u6 X - #include <tc/tc.h>
- A# `+ w+ r7 X - #include <sa/tcfile.h>
7 |* E. I9 p: H$ f' K9 o0 x - #include <itk/mem.h>
( }% \1 e2 a, [& }$ e" \
7 f, z1 k# j3 V0 |6 B: ?3 o* m- #define EXIT_FAILURE 1 + F' {' x8 p* s. m1 C" |
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
9 C$ L# }( T$ p0 R' @: U' J - static void report_error( char *file, int line, char *function, int return_code)( S3 S) O, C8 o! Z, i3 x$ R* B
- {
( { R) N, q( \' o - if (return_code != ITK_ok)
! ^2 w9 a4 b! I7 C# l) s) ~3 s - {
1 t! G) A$ G+ V) w - char *error_message_string;
8 U2 E2 `8 ~) Z7 o9 I' S - EMH_get_error_string (NULLTAG, return_code, &error_message_string);
. @9 J7 { ?) w( V0 f# T - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);$ \2 V( B9 E' r) y$ F
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
& t& j O+ a* v" W1 M - if(error_message_string) MEM_free(error_message_string);7 W/ O% o: U2 l9 u2 F0 t) E
- printf("\nExiting program!\n");
, ~3 Z5 v' ~& G) _! g - exit (EXIT_FAILURE); 1 x; k* e! S- P% z( s- m
- }
# T/ G N) h& P& b7 U4 g% d* F - }
+ K8 ]; B% E5 n9 G - # l1 H& A2 x" M R. w$ c' T( I* I
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
$ W6 f5 N. j' @: Y4 a - static void check_value( char *function, int value )
( O4 A) o H3 ^& C& i4 T - {
5 @" ~5 h; K* Q' s4 [ - if (value == 0)
z/ p0 D( @: O$ T6 i4 R - {. @% \0 ?: M/ b7 {& p, v
- printf ("\t%s is NULL\n", function);( l5 q% D# o& [4 J2 I( ~5 e/ W
- printf("\nExiting program!\n");
, R0 |4 ?+ G7 l5 M - exit (EXIT_FAILURE); 0 v6 Z6 h+ e" F. a' {7 {; ^: h4 j
- }/ `+ j. M ?9 N6 R8 c% e
- }
- z4 b9 T! v* x0 b: h0 x* X
9 m1 H4 Y: g( K& H- x! k) o* H: W+ }7 w7 q! R
- static void do_it(void)
( [& P$ l5 L) q9 H! n g - {( X! ^( ?: b! |6 _7 s8 `
- int
3 J. H y- {( u2 c2 K - attach_types[1] = {1};: n/ {9 Y. J$ S/ T; y
- tag_t
# g3 S) K. r* q; u7 _8 [3 g2 U - rev = NULLTAG, 3 _3 M( t# U4 N/ P+ Q+ M
- process_template = NULLTAG, : `6 W% J5 z6 J* M; {, `3 v) z- f
- process = NULLTAG;
& c# P' A8 W( R
0 |" q* ^; g3 t% Z% V3 ?- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
) e' h; T# E9 ]5 z" f1 m \- Z6 E" b# d - EXIT_IF_NULL( rev );
. u4 K* o9 y4 V8 [! i5 ~ - ( U" G5 I% _# M6 P
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); ; o5 e; y# W( q X! |) B
- EXIT_IF_NULL( process_template );) k; B8 M8 } a' y. Z5 v" Y$ I
5 d3 O [0 ]% D8 ], m! o; h7 i- - b& H" Q D! U2 n! y- m; B
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, ' z; W" |, ~* t2 h2 `
- attach_types, &process) );
: R5 c) j5 N( F' i R% d. c
! J5 }4 a- _ [5 F- EXIT_IF_NULL( process );1 P+ z) l$ p, R [
- } u2 r* B1 e: t9 s/ r$ M _
- I# C% b c. [$ x; C
- int ITK_user_main(int argc, char* argv[])
% g* i' G1 X& U3 V! U+ J, E% N3 V; { - {" M, s. I& t. y: r
- int! `6 u) ?$ r, H6 d3 n
- status = 0; 4 i# i$ Q) y. ~; T
- ! G+ ?* h/ Q. X6 q
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );* ?6 S$ r( U0 a5 m2 w8 F6 i
- status = ITK_auto_login();
+ L* q! u. H9 ^* r3 D; k3 _0 r- {! ? - 9 m/ S; a. B6 `* x$ ]
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
- K- O% D' W% c/ _3 g - else
# ^6 K4 H; Q* i/ f - {! [& S8 N- ?, F7 Z( r% z0 x0 }& J D9 M8 ~! h
- printf("\nLogin successful!\n\n");
7 y! Z; Y/ b4 r: j' `4 D - ITK_set_journalling(TRUE);$ d6 w% {) n; r9 f0 E) U' z( d
- do_it();' j8 r' _4 u# O' p% N6 g0 n
- }
1 s! q# e9 J$ ^2 d' Q - ITK_exit_module(TRUE);) J0 r6 @' L c( t
- return status;
0 ^1 u# W! j% I' }+ v - }
复制代码 : U* u# `! P7 d. s0 Z/ H! P8 {
! L) \* }: H+ H7 d* S! W5 z3 J( I
0 {1 a9 Q% [# t" f: T) g |
|