|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
: d0 ]+ B4 ~- k- h2 nTeamcenter ITK二次开发源码分享: 创建一个工作流
, C) M& L. U& ]8 N4 g( c) G( a) e; [- r( a/ J: z `% ^" k
- /*HEAD CREATE_A_PROCESS CCC ITK */) o* V: S6 D% s( i2 N
- #include <stdlib.h>
& z% H [# c q1 c - #include <TCcore/aom.h>0 \, {! G; M8 Z& G, U' _% Z- F
- #include <tc/emh.h>. n# X* @ D2 `
- #include <epm/epm.h>
: R* a! J$ {8 z3 t- K: @ - #include <tc/tc.h>3 m) {- S+ I8 k! G5 G6 u$ r
- #include <sa/tcfile.h>' z: O; w0 ~* S, u) `
- #include <itk/mem.h>3 [' t8 K0 E: P* Z7 `1 z
- ! }4 D0 L( v( s2 R* R& v
- #define EXIT_FAILURE 1 & H3 `! y" V) [" p: K/ J
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))" H* s' L6 W& u0 t; l/ y
- static void report_error( char *file, int line, char *function, int return_code)( S5 J; y% t8 g( y' T+ b
- {
7 T& ^; A; Q; c2 g - if (return_code != ITK_ok)
7 s$ G- U( v6 s2 a T X) U - {
( G2 @; R4 y9 l: T - char *error_message_string;
1 Y5 @0 I. }, J9 I - EMH_get_error_string (NULLTAG, return_code, &error_message_string);
- c3 c5 Z4 F# y Y% u* T0 a - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
; v5 D" N9 ~. \- D( q) U - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);: Z, G' ~! t, J5 ~2 S8 q0 O4 Q
- if(error_message_string) MEM_free(error_message_string);5 p3 F( ~" C% \' f
- printf("\nExiting program!\n");
0 F8 A+ J8 i4 J; s2 t o! M) w, p# ? - exit (EXIT_FAILURE);
& N2 j9 O% R3 S/ t6 D - }3 E/ C4 Y& g! r1 t+ N5 [- l
- }( \3 ^% `+ h( C& X: P( ^
- ' _- Q* N `+ O9 r- z6 c) h7 T
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))* F' _4 U6 |, }+ \3 M* l3 F4 m
- static void check_value( char *function, int value )
/ i6 H4 }" Z: Q6 y - {
5 R8 q- D" Q, `# \1 t - if (value == 0)+ _: T! o8 P1 J
- {
5 q) n9 U) ]4 `5 X/ G - printf ("\t%s is NULL\n", function);
$ O/ V1 B& l* p- S( L* L& }9 T - printf("\nExiting program!\n");2 S) Q* Z0 [6 n. s
- exit (EXIT_FAILURE); 5 k) c! [6 h" i! {- U
- }, v$ c% J3 `# L" c0 `& R
- }
5 g/ e! [6 {4 ?3 s1 {/ K# ^' Q
. \+ ^. z% q0 j
* J( _/ s7 O: D& i- static void do_it(void)
# O& p# b# ~/ w: r - {' H' u5 L9 d: o2 p& q
- int
6 L% c% f/ `: H# `5 M5 { - attach_types[1] = {1};) H7 s0 l9 N% _1 H" U- A0 _. P
- tag_t
T7 v0 E5 Y& u0 z G4 S - rev = NULLTAG, " q' Z0 ]5 T) O$ {* m% Q5 a
- process_template = NULLTAG,
V& B d; W) ^6 ? - process = NULLTAG;9 h7 U! K5 V9 |9 i- u# U+ g
- 7 Z( L- Q7 T5 e
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );- ?7 w2 D" T4 V, n
- EXIT_IF_NULL( rev );
4 B( }2 y4 Q6 _' o - 9 f' v9 N k: Q& `# O( o) ]
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
" H1 P! o. w2 v - EXIT_IF_NULL( process_template );
3 ]' o- w# }- l! I; T* M
2 A( m7 ^- Q( L4 ?
8 E9 O! Z: @! V0 j- t. m- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
" F% x- p% s- o* K( F( z+ A - attach_types, &process) );
8 U2 k; g3 L2 @1 x/ | - # Z# ~) n( `8 _. e
- EXIT_IF_NULL( process );
: n. y( m7 p+ R' ]) \* H# h - }2 Q4 l% Y4 m0 s) f: m2 |2 f7 q2 y& w A; ^
) J% E6 t. n0 g. e( h- int ITK_user_main(int argc, char* argv[])4 w; l$ R% ]# ?& c9 h* q5 c1 d
- {' L% ~% P! D- |( B9 V4 ]$ |
- int0 @6 E8 g: M% s: u: y0 i6 r
- status = 0; q+ m x. o Q
-
# S4 Z8 G: a4 z1 m# N/ y, L - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );! M1 T& n" h- o6 A/ V# r. w
- status = ITK_auto_login();! d7 _& ^! b$ n) m
-
# S1 n C; ~- V7 o0 _; f - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
7 y- t2 F( T5 P9 S& }! F' _ - else
8 Y; l8 i6 w9 _1 L t- _ - {
3 d6 K9 S* \& ^. e% R! d" O9 _& d+ k - printf("\nLogin successful!\n\n");+ A0 r7 V$ H6 G0 q% p" w
- ITK_set_journalling(TRUE);
+ z s6 \* \4 Q/ ^ |5 B. G - do_it();
6 N1 e$ s& @; h6 u" K4 A - }# X% l) t9 c# v+ E5 W; Z
- ITK_exit_module(TRUE);
% t& r5 D4 A& S6 X/ Z0 @ - return status;* e. g* Y' B- C0 X z
- }
复制代码 9 H3 h) o' \/ h, |) {+ z
% _" L1 T3 Q* I+ z9 W/ ?. q! ?/ p( T) b& c
|
|