|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
7 H4 U4 Z" Z2 S4 F" O# i
Teamcenter ITK二次开发源码分享: 创建一个工作流/ m5 c; C$ H1 C+ s8 S8 i
. h* {: K( W' l6 `6 T: e/ m; I
- /*HEAD CREATE_A_PROCESS CCC ITK */
9 f1 I0 c* D# z - #include <stdlib.h>- U2 f5 [+ ~ p: u7 B: j% V: V% j1 Y
- #include <TCcore/aom.h>) y' q/ o9 e1 c# o3 r' [! w
- #include <tc/emh.h>
; |, b7 w9 {- U - #include <epm/epm.h>
& _$ `* _; M L" z/ `1 P - #include <tc/tc.h>
; W4 g) A/ e5 X. [ - #include <sa/tcfile.h># ]% i4 c e e) I3 o
- #include <itk/mem.h>& H" `2 f9 k- B! i7 i
1 e+ I) g% ?3 N: N+ b- #define EXIT_FAILURE 1 + `* g0 u3 d$ N! g4 @5 `! p* `0 ?
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))* W& B7 q3 x/ i p
- static void report_error( char *file, int line, char *function, int return_code)
& k" \; y* P; S% E# N - {+ ?# L& q5 K( A( Z
- if (return_code != ITK_ok) p' P! P9 O# h( @
- {
) b$ x; t" \/ m" W - char *error_message_string;: _! N% b/ _- O" C2 Q
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);4 C& L* ^% _' M3 R
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);, L' I( `: K( f5 |9 y' r
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);( W" q2 l# \7 U, @1 l
- if(error_message_string) MEM_free(error_message_string);
. o S4 f p8 \; C' R ^" @ - printf("\nExiting program!\n");
8 D- @1 A% y3 u! ]" t3 X - exit (EXIT_FAILURE); / ]7 e3 K) t, }
- }4 f& c& C7 f# x; E1 J5 i( m0 e# H
- }$ @: s1 |4 B+ R+ `* W( A! Q- k- ^$ P) l
- 7 _! i; q, O1 j) C5 |
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
* o; _% f5 B& p/ d0 d - static void check_value( char *function, int value )2 S. s7 ]0 c! S/ O- E
- {
9 C M$ @8 _6 C - if (value == 0)
# u, D& s L( X; P0 w - {7 K% I; V K7 h# r! c
- printf ("\t%s is NULL\n", function);
5 H* c1 U% X2 R( y1 r5 {% [7 M - printf("\nExiting program!\n");- }; `. a( w( f' v
- exit (EXIT_FAILURE); % r8 E0 l1 [) Q' o5 P' A
- }5 s( m3 z% Q6 K8 Y. v! a$ ^
- }
* f; C" t! \ i3 r/ T$ F
1 i2 N7 S- \: ?. |: L- ' `& j) u2 I$ f) k0 |8 w
- static void do_it(void)
7 q8 a/ p; ?) a6 ~7 p' w3 t' H - {$ `8 r- m3 |- r; Y. N) N: k" u
- int
; M* x" u9 w7 \ - attach_types[1] = {1};
5 Y3 Q; @, @* p7 y, s, C - tag_t 6 V/ `# e- B/ `& p
- rev = NULLTAG, 6 b0 U* v. B3 [; k. q o
- process_template = NULLTAG,
+ X# s, f: m& z$ t% o) L' b4 c - process = NULLTAG;
2 q$ C9 i: J7 B; M9 w" P8 U4 G; Q! H, q - 2 Q7 T$ ?1 _2 u% r
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
6 q6 R' s9 U% o- K1 v. r z - EXIT_IF_NULL( rev );
% o" ?4 L: ]( O$ }8 c - 5 Y$ `: m/ b4 X- F+ U* F V
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 3 o6 f+ s: W2 z& Y
- EXIT_IF_NULL( process_template );* s- ~1 v3 V- c2 @5 }; T$ u8 N
- : S3 a d( u& |- M: H
- 7 d: E) c# p* Q) d5 x2 w
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 9 N! }1 w2 ~( ~9 w1 `# O* P+ m& I0 B
- attach_types, &process) );4 D& l3 D1 T" u$ O3 ?5 E
4 @9 g. E" b" T3 c' E8 z) H, b- EXIT_IF_NULL( process );( {3 t- }/ h. k- g& b
- }
8 O1 r4 V9 V1 I0 o' [ - 9 M' ?9 q$ v( G" ~. ^
- int ITK_user_main(int argc, char* argv[])4 t) l0 c N4 P5 w5 G
- {
* P* Q0 B3 v$ n) D V3 h1 f - int
* A: }- [ n" l& _( e. z - status = 0;
& B0 x* _6 A) k3 i S; T -
t( Y7 e$ N4 y# R - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
( k9 s. b: H* C. c5 @$ [1 [ - status = ITK_auto_login();6 u: t0 G0 j3 t: u- X/ s" w
- : _, Q+ S: C# e6 I, b
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");% w" H' Y. D( c9 ?$ S
- else
0 e1 c# H5 r! [. Q - {
3 ]( ?: K; [, k A6 t: |0 B - printf("\nLogin successful!\n\n");
7 M. V( G4 c* R* R& P) ^ - ITK_set_journalling(TRUE);+ K) w- @' p# y }7 T
- do_it();
8 O& w8 [( O! a, N1 h k - }3 g2 D( e/ H' z \
- ITK_exit_module(TRUE);
1 j% w. N4 h' R7 G1 r' @1 N! h - return status;4 g) B6 n4 [$ s& D/ A
- }
复制代码
8 s$ [$ I, m. f, i+ Z
# N5 p2 W- w( u Z7 r; o" A1 ^6 |- a
|
|