|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
0 m& g. Z( V1 g* c* ~4 c7 l8 Q
Teamcenter ITK二次开发源码分享: 创建一个工作流5 V. W% ^: e7 [ F% Z& _
' H& ^0 A( ~1 d' A3 K. [9 F3 f u
- /*HEAD CREATE_A_PROCESS CCC ITK */
# l, ]9 f) z; P9 a, X# @- { - #include <stdlib.h>7 W$ x/ c7 K" V% \1 Z5 I0 z* O
- #include <TCcore/aom.h>
9 k4 ]/ `/ P% Q. F - #include <tc/emh.h>( [5 X+ X; G* t, Z N
- #include <epm/epm.h>
. Z. a" f* Z% I. z+ l0 Y6 o8 S, n - #include <tc/tc.h>6 \5 l m" g& W& t
- #include <sa/tcfile.h>
* O- W' X7 I5 p2 T: ` - #include <itk/mem.h> }% q# V: F4 m6 t
; B; ^% Y$ S9 s! q- #define EXIT_FAILURE 1
3 S6 j5 q& N a: C - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))3 P' s4 P; p, N1 @+ X# N a
- static void report_error( char *file, int line, char *function, int return_code)! q; L. B( \0 R
- {
% {; B( n4 I5 j - if (return_code != ITK_ok)
2 H/ |$ v4 t1 h - {2 C' s' S$ ~$ u# j3 k: f) t
- char *error_message_string;0 d" H# c' Z& q7 E: d9 Q
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
- d. u/ S4 _7 s/ m7 t7 p9 Z - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
" p- M( ^( v* m, _% U2 m - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);7 g- E$ L7 l* x9 c
- if(error_message_string) MEM_free(error_message_string);& m: Z# z/ p5 v: g' {7 \+ ~: s: i% S0 s
- printf("\nExiting program!\n");
9 w$ D1 O4 M# T& \/ }1 s% R - exit (EXIT_FAILURE);
" s( G: q7 P( c0 c' }% F - }
: z/ @1 b7 c& t - } Q3 F/ N8 ?3 Y/ |" C) R: J
/ B2 \" m' L! Z, @$ [- #define EXIT_IF_NULL(X) (check_value(#X, (X)))/ G: w! N; Q; H# b3 }7 {
- static void check_value( char *function, int value )) g' ?: e. k/ N1 S
- {
$ Y. b; r9 p% v2 a& Y, t; ? - if (value == 0)6 t3 i! \( u. T# _ ]( a; v; T5 s0 [. J
- {
: K! G% L J4 y9 o8 V: ]* r - printf ("\t%s is NULL\n", function);
* Z# e. y! z7 @ - printf("\nExiting program!\n");
2 |8 P3 J& q& ]7 g - exit (EXIT_FAILURE);
& f- U) Q8 \4 ^7 p. [6 V* X - }) m: c& k4 L. W6 y9 m
- }
. f3 a1 p1 W3 b- a
3 c4 Z2 b0 _. d5 B1 Y- ; V! U2 E: k- \& N* B2 ?
- static void do_it(void)
- h7 ?% Z/ {( u$ U$ X0 P# r! i- Z2 N3 ` - {; u% m, N B' e$ q$ ^" i' o) h- n
- int
% h& D0 S, U8 w7 L5 l- a - attach_types[1] = {1};
+ g8 @! g5 _+ T! x. D& L - tag_t ! [! w1 M5 V3 E# A4 u# }, a- n
- rev = NULLTAG,
0 P5 N, r6 C q) f) L7 ^ - process_template = NULLTAG,
5 V; O/ U# I/ d3 C3 Z- { - process = NULLTAG;
' ~- e9 I+ Z& q5 ?: @; [7 r- Q/ p - 1 I" ^4 w. a8 {* C$ J/ A" i* |) ^
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );+ u4 f: x3 g' a, t# p
- EXIT_IF_NULL( rev );+ _/ {/ C- u8 Z6 ~/ M. {
- $ W( o6 |7 _/ q( D$ P% t, I: N6 }
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
, R4 k) S) W' d t3 g - EXIT_IF_NULL( process_template );( s; d# p* J+ h( }' o
: p4 U1 j9 H# T8 A- s- 0 [ c& c3 u0 x
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 9 Q; R" \( p4 w
- attach_types, &process) );
) d6 j6 k v! d9 J9 v4 U- g - - U2 K2 @) }; E: `) y
- EXIT_IF_NULL( process );
+ x: g/ C' f* x* }. u$ h) u - }/ F _: _; V- r' p* v1 y
- " L, R& \; T/ `! U+ i' H! I
- int ITK_user_main(int argc, char* argv[])% P, G# ~0 }& F4 ~0 ^
- {! i. H) C9 G; i& E, g% F( M, q
- int
- a" q' w$ G6 t% H o; a9 F; Y, C - status = 0;
5 X& i9 I5 N5 n- b1 n6 M) C - $ E6 Z3 b# U. H, {8 X) }: V
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE ); o2 t) U2 E9 |9 G% y; K; {# b
- status = ITK_auto_login();
: W! e+ P) `: H4 E -
8 q8 t( D r5 Q H& L0 F - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");% G& z- M; a$ O9 s; ]9 H
- else
. T- c5 l7 U, }3 {. K( X - {6 h4 V4 Y1 w1 n7 G6 g( T
- printf("\nLogin successful!\n\n");
: x& u# J% [; E' v7 t' R4 d) s7 Q - ITK_set_journalling(TRUE);$ {( n$ e/ {+ `7 E* s- ~
- do_it();
) d9 x. C3 y' E9 G( a- w - }# p; w! Q, |; _' |% Y
- ITK_exit_module(TRUE);
" w" i5 {: v3 {: W" ?8 A$ z6 e/ g - return status;" r$ r- U$ V: @+ W3 \5 u: a0 t
- }
复制代码 $ t0 Q' r3 ?' `# R' x1 q7 F8 Q
' O, y; F0 w- B
6 a2 |; E( t2 {7 q& ]
|
|