|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
6 V$ A% y' g( M* K- R2 \4 U f+ C
Teamcenter ITK二次开发源码分享: 创建一个工作流
: l5 h0 U7 \' O p1 K# T8 q2 B- a/ z; X5 A+ w4 L
- /*HEAD CREATE_A_PROCESS CCC ITK */
: [7 `. S% E% I# }2 o - #include <stdlib.h>
7 Z( @) I' T; w, q4 P' H1 y8 [. x! d - #include <TCcore/aom.h>
" f5 A: m0 p$ E& L - #include <tc/emh.h>
; E `% S/ V5 i% ] - #include <epm/epm.h>, |; T3 M K7 V9 Y0 }# h( d6 s' h. X
- #include <tc/tc.h>- Z& h4 x% R& C! e8 j& X
- #include <sa/tcfile.h>
2 e3 Q& ~* a8 O f - #include <itk/mem.h>+ K: ^$ z8 y% ?1 ~& P
# T: f* n# u! l7 R6 k8 {- #define EXIT_FAILURE 1 - \. B! l U) {
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
" e+ O+ g' P0 \8 X! _ - static void report_error( char *file, int line, char *function, int return_code)
8 U8 p4 g8 d5 w: ?8 J - {7 s! a& \2 q l9 f/ I3 v$ t, h
- if (return_code != ITK_ok)
p6 L: |9 O8 E5 O: n0 U - {
8 u* Y- t+ @2 _6 F- b - char *error_message_string;6 |8 y9 ^9 g+ R
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);6 B! Q4 z# O& S2 Y
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);( n4 I0 U& Q- F. {, V
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
' v8 i; S, _- g# k* R - if(error_message_string) MEM_free(error_message_string);
% q6 k% O% U+ {, j - printf("\nExiting program!\n");
: ]5 I: e5 y1 U9 z0 ?9 c - exit (EXIT_FAILURE);
5 z S+ X7 u I* T - }
' S3 r# v! T# q% _5 \ - }+ x$ J5 H- f- H/ S
" J% J9 _" q! Q' E0 ?( g- #define EXIT_IF_NULL(X) (check_value(#X, (X)))6 u1 ~% V3 q5 J. G
- static void check_value( char *function, int value )$ d0 d& R8 k0 S" r1 u
- {
1 ?. Q) A, d: T: Z2 {4 l1 K. A - if (value == 0)6 R) P, A1 B8 o( [
- {! Q# b" d# V$ Z
- printf ("\t%s is NULL\n", function);7 f/ N8 L2 N: `3 D
- printf("\nExiting program!\n");
$ f( K& Z" D! I1 g T* O0 x - exit (EXIT_FAILURE);
. {# }4 s( }( @% U9 ~* c - }+ V# b5 [3 b# K4 B& m1 t4 {
- }6 J* H/ I3 s2 A! V9 \& [: _3 N
" P. {+ `, b9 Y+ y
" ?" s- C$ K' I0 p+ {- static void do_it(void)* O4 z0 f, V. s/ }+ A
- {" [0 i) i- E" w" v. E
- int , `# K# S" i: S% H: Y
- attach_types[1] = {1};" V! O v$ R- m$ Y7 V2 G
- tag_t
0 u6 f( B8 ]' r0 ]( V: Z - rev = NULLTAG,
! s- O7 K( J0 M* p) Q6 W - process_template = NULLTAG, " @. B! y g/ H1 s) B
- process = NULLTAG;' D1 s5 |9 N" M$ l' o: |0 {. u% I2 R
( w3 t3 e; o7 U- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
, e5 ?# ~$ {$ |( h7 s+ s - EXIT_IF_NULL( rev );' s0 [& T4 @3 Q d& Y% S' [
- 5 j( D6 i, m- X0 v: s& n
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
% Y) p4 Y0 x, } - EXIT_IF_NULL( process_template );
8 Y, f# K; X2 H8 q
/ R: m/ C: j5 P- k" A- 7 v; \; e( \4 E! J1 O) ^1 ~5 J% O
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
# A1 s m8 m N5 ] - attach_types, &process) );) T9 r" @, B+ D, v) w- ]8 @
- 4 H5 @8 Z+ T6 m& h4 K2 i$ N `
- EXIT_IF_NULL( process );
% b4 }' f# t) k8 M) s - }' P1 w( O7 A& J6 T" t
$ h1 d, t2 m u) k! t" N, _8 c- int ITK_user_main(int argc, char* argv[])0 M1 Z$ L" O8 c, ]
- {
$ m" [4 j+ K! b) H) R$ x) \3 K - int
7 P+ h+ a1 t( F! p$ a( G - status = 0; 6 B. y) W1 W; a! U3 Y- o
- / U8 d& E! D" H1 L
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE ); u" \7 w3 ^' w6 C( r) }2 D
- status = ITK_auto_login();
1 o% p4 }1 R0 J -
" G3 T: t0 k5 i6 S - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
a3 f) W7 j) @! z I& i6 o0 J - else4 I8 e! h# J- Q m" S
- {3 w2 O# d+ S$ h* ~3 O
- printf("\nLogin successful!\n\n");
6 }8 s1 L6 c. [& ^6 s - ITK_set_journalling(TRUE);5 C# e @# T: C7 A
- do_it();# y7 |# R& k$ c4 e }3 d
- }' Y' @* N+ d& j2 D
- ITK_exit_module(TRUE);
8 v& \' e# c1 {, N - return status;
/ ^7 P2 b3 _7 X0 x - }
复制代码
1 f4 p; b5 y+ y" e x: o5 t% U8 O4 {7 y% i. D- s3 H" J
- J/ |- _8 d1 o( B6 U |
|