|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
) @( p( m' j# l& `! ?8 N
Teamcenter ITK二次开发源码分享: 创建一个工作流
) }! ?0 ]. F- J% J3 o0 `( _0 g) }7 ?$ h
- /*HEAD CREATE_A_PROCESS CCC ITK */( i7 N0 Y+ |# A9 T7 D6 n4 Z
- #include <stdlib.h>
F* B5 w9 M a - #include <TCcore/aom.h>! `% q$ Y+ _3 Y2 e/ B, J2 P
- #include <tc/emh.h>
9 W t9 I8 \6 \3 T - #include <epm/epm.h>
: d3 O& W) \, O: w' s - #include <tc/tc.h>
/ ?- T7 g( }5 Y - #include <sa/tcfile.h>
6 j& h! K* k2 }' q% N- g - #include <itk/mem.h>
+ j4 T+ Y( _$ e1 i4 n: f6 T
* q; o8 ^, N3 ]0 a/ F- R* h- #define EXIT_FAILURE 1
5 p5 F4 p' j+ S' ^ - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
# C& e( M5 b' ~6 R - static void report_error( char *file, int line, char *function, int return_code)
0 W/ q- x$ Y% g! U+ h - {
* w2 L: e+ |' r7 n& k - if (return_code != ITK_ok)% I5 S7 Q z* z$ D
- {
3 K& Z% i4 V) @- Y' C$ E - char *error_message_string;
% u% i2 e; L$ P( | - EMH_get_error_string (NULLTAG, return_code, &error_message_string);
. X: f) w4 K+ A6 R( C - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);% P& M3 L2 x, |7 z3 T
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
' u( b4 ?' Q8 V$ Q- D n3 h - if(error_message_string) MEM_free(error_message_string);
4 v/ [" d" B/ C/ V3 E' g - printf("\nExiting program!\n");# ^# f% o! l1 I" `1 I2 @) d
- exit (EXIT_FAILURE);
% A( s$ j4 {: \) s4 f# e* G3 }) ~ - }6 @4 E% }, Q; [- D
- }0 s9 N; I5 I0 X2 }" t5 w
- 9 h- N6 p3 l( u! ~. n
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
6 h/ a, E) l+ a% v0 Y! E - static void check_value( char *function, int value )
5 k" F$ j; y) a$ n7 U - {5 @. ^% c$ S( V8 G5 _% \
- if (value == 0)0 `' J3 k2 |8 N5 }1 ~' \- }
- {9 i6 m# f7 |; r' k! c
- printf ("\t%s is NULL\n", function);
/ g! h4 x% p6 ^. W% g - printf("\nExiting program!\n");2 m7 X1 v+ T; I7 C* X
- exit (EXIT_FAILURE); $ A" a1 {0 ]- K+ j! [, ^4 f: \. ^
- }5 x- r1 [4 S- t3 ]7 Y
- }' I" M: ]: n6 B
- - G) c0 o/ w8 S! S! k3 T/ A! f
- ( \( V- O2 L( }" H. N3 n+ L
- static void do_it(void)
: j" ?( u* }% j4 I4 b6 q. u* | - {
8 {$ \! A! I8 ]9 ^( e' r - int ; z' K2 N1 ^8 Q
- attach_types[1] = {1};) H. O3 {2 r0 u" F/ Y0 U2 q
- tag_t
: @6 ^/ B/ X7 V" f9 N3 u - rev = NULLTAG, 2 w) w; U/ [- ^8 M0 y
- process_template = NULLTAG, 6 z4 f1 p) k' ~/ ]$ v% W4 c
- process = NULLTAG;
% W R. e6 Q4 e f1 a( Y
3 F' Y' a3 n$ w8 b- C# T- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
+ h; y: i4 b3 h! O& I - EXIT_IF_NULL( rev );; b" r) n g/ i( V0 a+ u
J- l8 M. S5 f+ \; v) b- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
5 T: U0 ~- y5 R- M0 V+ x5 u - EXIT_IF_NULL( process_template );
. H& M0 d7 a3 A7 {- j4 y* v) v# s - 9 }) R }7 V" c" S
5 z: R9 {! @1 d! U# E. O9 _- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
7 P6 g5 B& j0 H0 H9 b, V - attach_types, &process) );
( x7 d- F' t |: ?" k
0 _ ^0 M6 D) W. Z7 D Q9 T6 v! L* N# g- EXIT_IF_NULL( process );9 ~( ^. h: x* N4 ~5 C* o2 z& p ^' [7 Q
- }% a9 }7 k. I) n& C( P3 p( H
9 C6 Y' H1 c7 ?6 o* E& Z" p( i F- int ITK_user_main(int argc, char* argv[])( H$ }: ?* {$ N* m# T3 S9 c4 s
- {
! [0 Z, e. R6 {! ? - int
) v1 J6 \/ Q* _+ V2 A9 o% |; f - status = 0;
$ W0 o8 p+ Y% o' Y. @$ N - " ^. X. V1 w2 U* B( A" y9 E
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );8 L' s# X8 @ ]7 Q: e( S5 t2 Q+ d
- status = ITK_auto_login();6 b8 q5 {+ R) B
- % q% d/ d- K9 c1 V
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");/ J0 V8 Z- K+ p# |
- else
7 m/ K1 a7 |/ S" r" {) B; o, c - {0 t9 M( A! o2 q' b1 F9 |
- printf("\nLogin successful!\n\n");
, \: K; z- M) K - ITK_set_journalling(TRUE);
7 B1 N) k' x( u c( I - do_it();
$ P& G; `! a# @( a: {8 S. g) z - }) y8 w$ k# F: `5 I
- ITK_exit_module(TRUE);
+ u5 W/ M# Y& |( }2 Q' G4 `0 ^, Y - return status;
+ Y4 z: Z, L& d0 D `3 n8 X - }
复制代码 W- E+ z0 b0 Y) R9 s
1 S/ f# B1 m" \
' @ J% V& `; d4 p" [' h& ` |
|