|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
$ y- N+ d# @/ |
Teamcenter ITK二次开发源码分享: 创建一个工作流% ]# y( ~3 }0 N' h' G
4 u) q$ C! m( g6 K4 R3 J" ~- /*HEAD CREATE_A_PROCESS CCC ITK */# K& h# ~- ~& c
- #include <stdlib.h>
# q% L+ I( Q" M8 D6 R9 T - #include <TCcore/aom.h>
+ ~% Q# \6 s5 t/ P - #include <tc/emh.h>8 | s- R2 i1 o) h* k/ t: {6 p
- #include <epm/epm.h>
[; k- a9 f1 |2 x - #include <tc/tc.h>
7 l3 i0 R }9 ]+ m& N+ b8 G$ w - #include <sa/tcfile.h>
3 X, }4 P# B. J0 w+ {3 v F( Y - #include <itk/mem.h>
9 c" Q( l& {9 ], E1 A1 a - 0 f' [/ W; @) ~
- #define EXIT_FAILURE 1 - C5 c6 q7 O9 C- r5 ]
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))5 `8 l, _$ R3 V4 V$ K% s$ v
- static void report_error( char *file, int line, char *function, int return_code)
3 H# n' E! Z5 I' y% o9 ~7 L - {
: Z. x% U6 C. l/ {) f& I$ N% s - if (return_code != ITK_ok)
1 C5 _& v# H* `& j, c! _+ o( o - {4 {! g1 w% |, T5 \4 Y p
- char *error_message_string;
, V) _: s- Y6 o) t0 \3 a - EMH_get_error_string (NULLTAG, return_code, &error_message_string);' z! x+ V4 ^5 y
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);1 l R( k/ H6 [( c- F
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
5 L* ~$ I! L4 |) N( Q - if(error_message_string) MEM_free(error_message_string);
K* L2 ]2 S3 O2 c' B - printf("\nExiting program!\n");
# A8 i3 J& H' J1 c) d - exit (EXIT_FAILURE); 6 { ~+ V& i# m7 S6 a
- }0 g$ U8 [9 W9 C0 M- a
- }4 a0 R" H* r0 ^
' S; ^% R$ o/ ^# J8 Z; V& F- #define EXIT_IF_NULL(X) (check_value(#X, (X)))9 }) R9 R1 m M$ P+ v8 u7 L1 X8 \
- static void check_value( char *function, int value )9 V+ n' V; c3 c( s0 v; U
- {
0 ~ E8 q1 t4 @, L( w0 `4 x - if (value == 0)
! f& R7 z5 A d- n - {9 A' w" c+ f4 }$ m- t6 p
- printf ("\t%s is NULL\n", function);6 ~, N' v1 y. }$ R n
- printf("\nExiting program!\n");, [2 |' Q# `% g; Z7 z, @
- exit (EXIT_FAILURE);
0 h, ~$ K$ X0 x; [* b - }6 n& ]7 V# Y6 [- H
- }
. L7 I: s; A! r% E - % y$ J/ ?) ^" I
- , d* {; S+ b; g2 @2 X
- static void do_it(void)
X+ z% B0 v5 f+ p& q/ K - {+ ^! ?/ {, U+ h4 e3 X
- int ( @. ~9 @' Y# d3 S4 W
- attach_types[1] = {1};
8 o4 l2 w( U, p5 P7 _1 S - tag_t
8 D% N! {1 K' @! g6 p) e - rev = NULLTAG, , ~" U4 W- T2 W1 W
- process_template = NULLTAG, # R/ T0 x K# n9 o$ W4 f
- process = NULLTAG;
1 [ \ }/ I& x/ {
: b4 g9 B9 c+ I% b6 ~- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
$ L8 Z) I0 |/ f- n" d/ b0 S - EXIT_IF_NULL( rev );7 A6 ^( i/ c5 y0 z7 u* X7 q
1 S* s2 k6 E) W9 }' P- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); - E9 [7 V3 v. ~! v) z. r. F
- EXIT_IF_NULL( process_template );
9 A$ v) l* F9 z - " \$ R+ U% V3 e1 z) H+ e& ?
- . A" a; o# w8 ]; F: T
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
- r% ~, r: y, P$ H3 Q! k - attach_types, &process) );/ ]$ z7 J; c2 ~% @7 N x! K
$ G/ G& Q7 o* v$ F* v- EXIT_IF_NULL( process );: u1 O6 a+ U) e: J2 m; l: l8 W
- }
/ z: S' C3 L2 L @0 `1 c - ! M* e# g( `1 o6 @
- int ITK_user_main(int argc, char* argv[])
& I6 n1 a+ s" u0 B8 U. K5 a6 Z- j - {
v" v8 S- X6 c+ [4 i) b - int6 p$ h+ {! A# ?1 k
- status = 0; 8 b, Q# e f1 O" b+ g8 t" z
- ) r2 R9 u7 i! j' P5 D) o: T
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );- u2 j2 a$ _, E) f! w% |$ ?$ Z) ?0 A
- status = ITK_auto_login();( B& H! D$ H! T
-
" I5 g8 m0 v, W6 B8 y - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
7 l7 v" a1 a: c( Z% o" t% Y - else, K( M- d4 r$ R' [* [$ x
- {! U% A9 P/ S+ C x" w6 I& ?
- printf("\nLogin successful!\n\n");
5 n6 U( R- g( K7 I) z7 i - ITK_set_journalling(TRUE);2 @) S% \0 O# i0 j o
- do_it();
7 @/ Y8 d! ]% z! \4 ^- U - }2 W3 \( C% y8 J; K# Y2 g
- ITK_exit_module(TRUE);
; z* o! R: b: U# @1 ^( L3 P5 ~3 v - return status;7 P1 f+ n9 Y/ Z r
- }
复制代码
! z2 z' ^# m/ M* g: M# i: a$ O; C* g
4 S' @4 M! X; Q. I
- N* a7 G- }$ o |; ]# V3 V3 Y |
|