|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
8 l1 @2 B x+ E& m4 N+ H* V% b
Teamcenter ITK二次开发源码分享: 创建一个工作流
$ i+ R2 S% a: j
. z/ ~4 _$ n& P" S- /*HEAD CREATE_A_PROCESS CCC ITK */
2 K6 E: H6 J8 l5 o - #include <stdlib.h>8 l; S, I7 F2 k: e1 q
- #include <TCcore/aom.h>
8 a* b3 P6 A/ {7 r - #include <tc/emh.h>9 c( U; d# `9 U2 S. \1 t; {" Z' B+ B
- #include <epm/epm.h>
! z' O/ }7 p) P; [6 o - #include <tc/tc.h>4 W5 l" ^2 R( x; M9 ^
- #include <sa/tcfile.h>
% _: D% W' V' H; \; i1 O, Y - #include <itk/mem.h>. u3 L( n6 E3 b2 w. u0 y2 R
; _9 V I! ^" ?$ ~- #define EXIT_FAILURE 1 " G# C" i+ ^% d% ?
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
8 ]4 S- ]. ?$ c; j) n& @ - static void report_error( char *file, int line, char *function, int return_code): x2 }/ h# p! t
- {
V7 f/ l* n5 p" F! _" N# T' U - if (return_code != ITK_ok)2 r6 O) n) V5 E, N2 `
- {
) Y- P& K- s1 s1 U! v5 T1 ]! f1 d6 L - char *error_message_string;
7 n! j: f0 V; d5 f8 z - EMH_get_error_string (NULLTAG, return_code, &error_message_string);
' q5 f5 ^* r: u, ~' T! d - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
- l2 Z! A) J9 ]/ W+ r - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);8 H( J4 m' @) `+ {
- if(error_message_string) MEM_free(error_message_string);3 s; O& d# g* C; H) ]' r6 a" _: Y
- printf("\nExiting program!\n");$ E$ c) Q( ^% C/ ^
- exit (EXIT_FAILURE);
" K9 p/ p1 E& d+ q$ v5 W - }( J: ]8 Y, f3 ^7 t
- }+ B( Y% Z/ R& F1 t4 F1 J1 y E2 i
6 ?- T+ F9 C' b. r# E9 U! P- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
& U% y; b2 c! F/ t - static void check_value( char *function, int value )0 Y- [, f" f5 m7 Y
- {
, I Q3 z, E/ D - if (value == 0)- u3 J) K1 H* ?+ ]
- {
; n1 k- ]2 f1 `5 d) V1 }* Z - printf ("\t%s is NULL\n", function); A2 E5 E8 S7 _1 R
- printf("\nExiting program!\n");3 \5 N- D5 h- p% T: j! H& R l
- exit (EXIT_FAILURE);
b# K- o8 T. R# q. `3 ~+ ] - }' z4 V4 `% p& y( j
- }
: N0 b3 }1 `: q5 Q5 E - & u, W$ a6 K& N4 j0 H i% r
2 {( ~9 }! b! _) j- static void do_it(void)
# e& w0 y# ?3 |0 {. B' H3 }; X' `* @ - {: |- Y0 |' M* R( u4 |
- int
3 w5 L% N, B3 h' X) g7 L8 @ - attach_types[1] = {1};
% h( u/ a! E0 E5 }1 j2 n+ [ - tag_t
5 V! e( O# ~6 z' [ - rev = NULLTAG, 0 } @, ]+ o) s r9 x
- process_template = NULLTAG, # e0 N6 i" K9 h4 A3 A
- process = NULLTAG;2 r/ n0 K* Y9 }$ y3 ]5 |! C1 ?
- 8 v7 s1 E9 V5 R
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );( @9 d# [' m: n Y3 ]2 h6 V
- EXIT_IF_NULL( rev );0 D6 W, |5 ]* a$ w) ], ]9 a
8 n- R1 M: ^9 _* Y3 |- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); : R# }8 s$ I; v! W1 j
- EXIT_IF_NULL( process_template );
: J( B1 p9 m ^8 ~* e
" ?- m" I) }; C: a- / E$ y4 ~+ E( G" e/ O
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
9 Z) W7 W# U3 t) f. |. s+ _ - attach_types, &process) );
( w6 D' M, X- m& y
5 W' y* O. k. [5 K" A0 r1 h8 H* K- EXIT_IF_NULL( process );
7 W# O; g0 G/ B( j( [1 y - }7 I8 `* V) G; \; N8 u/ a
?0 F0 ?9 a' p- V" |. a! X5 X$ a- int ITK_user_main(int argc, char* argv[])% d) P' y& T" G- @5 d9 M
- {6 x; }8 J2 J5 }" {( N
- int
2 j! K* l* I9 R7 f - status = 0;
. p$ Q/ E& n1 a4 {+ J7 T! P5 f -
+ m3 `+ Y- A- s7 D4 j. _2 k+ o# \1 z - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
" h, E& x/ E) K* M4 y - status = ITK_auto_login();
3 R/ f0 ]+ u7 s -
5 |7 W S( M' P! I0 c - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
( T3 O$ D4 N- F/ T1 L - else2 t' _* r3 }0 D3 m8 P( f
- {( t! M; {/ P/ s* z. |7 \4 A5 ]
- printf("\nLogin successful!\n\n");
, O* M% ~! _0 b$ \ - ITK_set_journalling(TRUE);
% u& ~3 ^5 K% z7 I* H& L - do_it();
1 g9 I7 O2 _! l+ [% u - }
" L9 u1 U( C* g- n/ K" Y1 @ - ITK_exit_module(TRUE);
" k$ ?: F9 I3 a! Z. l2 C* e - return status;" w' D5 r* g, }( ^
- }
复制代码 5 S/ }5 g2 C9 f( b$ J
n8 U- U" A# f" k# Z
/ i2 F) X4 E: ~" E- V W* C, @ |
|