|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
# W6 b6 Z5 H( o- E& }. N" R5 a" {Teamcenter ITK二次开发源码分享: 创建一个工作流
+ ]7 C+ Z N6 I
8 V* T* ?9 |+ G- /*HEAD CREATE_A_PROCESS CCC ITK */
2 W' r4 ?" B, w" ^% B; l/ F/ P$ r - #include <stdlib.h># M/ ]$ q5 ~3 D: D: [( m
- #include <TCcore/aom.h>
/ e5 | P) X' S k7 f - #include <tc/emh.h>
# f0 E1 J8 H+ n: [ - #include <epm/epm.h>
; ^# B5 {) [& n! _. G! W' r2 N% {! F! N - #include <tc/tc.h>
# B, b2 K+ X, Z, ]$ I1 W d - #include <sa/tcfile.h> ]' p; r6 P% Z
- #include <itk/mem.h>3 M5 G0 L( i% z3 W' Z; L& A
' z7 h1 o2 \; U# u. ?- T- #define EXIT_FAILURE 1 # w- @: _# V, K0 w
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))& U- w* T+ l5 Q! `: Q4 j# k. q7 l
- static void report_error( char *file, int line, char *function, int return_code)9 H) X. G# \& D4 C* ]
- {
! K2 |: L# E: Y7 C2 v2 h - if (return_code != ITK_ok)& q# C) \( X& `! ~, v+ g! ]1 z; ?
- {
, y/ X" \/ W9 U - char *error_message_string;( u/ D N& R/ r% ~% R3 @
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);' W7 n0 }& x3 z0 \& t" x) [
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);1 S2 A, `5 A% l# @$ J
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
3 j: X, ?. K' P6 |6 N0 Y% B) s [ - if(error_message_string) MEM_free(error_message_string);% o4 ]: O6 T0 [+ `. [* X+ |
- printf("\nExiting program!\n");+ c: u8 k" k* x+ r
- exit (EXIT_FAILURE);
2 Q$ [; I+ f d% |" M" P. Q- T - }/ {6 @9 h3 G; {0 I4 t" d# Y0 k& U) v3 I
- }
! O7 i# T( b1 w - . l5 H) m. [9 h( t2 O. y. W
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
/ R5 C0 A/ c7 V8 ^0 R - static void check_value( char *function, int value )
2 R6 w5 c3 K6 g - {
1 g. u9 h, T6 q1 K2 q - if (value == 0)
6 L9 ?( f0 b- {% m - {8 Y0 i! y( E" Y# V$ u
- printf ("\t%s is NULL\n", function);
6 K" s- I) q! T4 Q) Z" x- p - printf("\nExiting program!\n");1 G2 ?+ q' Q, h4 X1 W
- exit (EXIT_FAILURE);
# l' m1 ^( Q- i! j- t - }8 N. g7 G8 e+ |1 n
- }
, X7 H- M4 |! d. l- u, f6 r - 5 E+ t% K: ^$ u% N1 R
- + C& Z# j; l1 F; `6 E6 G5 l7 Q
- static void do_it(void)$ c2 ]( \, G- A# U2 D( n" |2 J6 c8 a
- {
7 Z: i! z2 @* e/ f4 x$ y5 [1 x: p7 y - int $ q S- d& J# R; F& N& @: t
- attach_types[1] = {1};3 z" d7 n/ I1 `) C0 r! q
- tag_t 5 ~0 `3 t7 | b) W
- rev = NULLTAG, b2 _8 q% d4 @8 d
- process_template = NULLTAG,
* O) c! p/ i7 u+ o5 Z- O - process = NULLTAG;" ] Y, U( q D( k
$ P1 p. \5 C! g- F8 I8 w% G: _/ W7 C8 ]" V- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );1 N) f7 f3 z0 a; {! V4 \
- EXIT_IF_NULL( rev );/ z+ d4 Q* W/ w; d# F# s- _, I# P
4 X7 S8 b$ `7 `. n9 [8 `- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 7 n' m5 d7 P1 Z) t$ J7 X+ r A( D; R
- EXIT_IF_NULL( process_template );5 i9 q" R4 Z( Z$ @ K6 `
- $ X, O# {6 ? ~7 W9 o4 q
5 J; v* F' J& c3 Z1 |3 G/ S- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, & f; R& r: [3 R* j: S
- attach_types, &process) );
% C: p4 l( ?6 H) Q( e9 q- {
2 ]1 u$ k4 X; g6 T- EXIT_IF_NULL( process );
- s4 H0 d9 S7 ?' p, K0 B8 v - }6 R+ p1 K0 R: t. v: U
|. r1 K0 L7 p. O0 K& ]- G/ n- int ITK_user_main(int argc, char* argv[])
% Q' v6 d. U( t4 I+ \7 P) i7 i' Z3 j - {
2 u& h5 I2 C( G4 e5 T+ V - int
0 l3 Q3 E9 f3 K! @. D, Y6 s - status = 0;
% J9 S0 N; [+ W) n. U# p% K -
7 v3 {) M% v8 Y0 x - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
: I5 d1 V ?) U& z3 t3 T - status = ITK_auto_login();& f# z$ o( |# p( h2 u& @8 ^
-
7 H }" V& o, _( z" U - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");. T1 Z; |& d$ q
- else; X2 m: }/ k6 P' I1 r+ R4 l
- {5 O/ {9 p, q& a3 b
- printf("\nLogin successful!\n\n");
3 ?9 x/ u1 i1 Z. _1 [- g - ITK_set_journalling(TRUE);
% O' Z0 `: U5 B" F - do_it();
! f% K z6 I1 d2 K/ J4 g - }
6 J" a5 x" _# j' x! a2 }. e - ITK_exit_module(TRUE);; S3 M( i/ n x+ X+ Z6 J, C% Z: }1 `
- return status;" W/ u6 _/ J' \+ v& P3 h8 N# p
- }
复制代码
/ R! a6 B+ D7 r, h; L" ?6 h$ U; v, }0 n, h1 r. Z" u
! A$ E$ `5 A0 x& I! i. A$ ^
|
|