|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
4 I# h- y2 V2 h/ y( ?
Teamcenter ITK二次开发源码分享: 创建一个工作流
3 k1 n' }9 T# k4 R# v% }& S6 t0 ~: M4 v" c, B( [
- /*HEAD CREATE_A_PROCESS CCC ITK */. t/ `1 i) g: P, p$ W; C
- #include <stdlib.h>2 I! F" C' P7 @9 }9 o3 k
- #include <TCcore/aom.h>
4 r) C* Y1 {" l# v8 Q; ^ - #include <tc/emh.h>
- D5 u0 q4 z' |: } l/ q - #include <epm/epm.h>
5 I4 G' f+ Q( s - #include <tc/tc.h>+ M' p9 z# v1 A( b
- #include <sa/tcfile.h>
# C) |# y* z8 U1 O Z: J - #include <itk/mem.h>2 r( P8 u2 W5 L, ~
- 7 m0 ]$ o5 v; b: c$ G0 I! O
- #define EXIT_FAILURE 1
) a3 G' j6 f# H8 y8 _2 W6 V7 P& f& t, P - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))$ s4 @# B7 ~ l1 f( V+ k
- static void report_error( char *file, int line, char *function, int return_code)
; q. l5 O& o0 Q4 o% q. s7 W - {
, [9 p3 G4 M# k - if (return_code != ITK_ok)
# n" X( Q( W/ q5 v: L - {
4 @# Q6 Q" M9 F1 |3 L* C - char *error_message_string;! B0 q; J5 m4 W2 E( V
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);. w6 S1 t& X, n8 Y! K c
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);) E% l, m& Q$ i' V. H- Y: M- N0 `
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);1 H8 W& p2 R2 l2 h$ N
- if(error_message_string) MEM_free(error_message_string);
; j" m/ P: A$ O3 m4 g! _: a - printf("\nExiting program!\n");
2 y2 T2 U3 p$ N) O- i7 S$ H( W6 u - exit (EXIT_FAILURE); 6 o( Y4 ^) F0 c8 H: F$ W2 t
- }
* G* j% G, C; u" J - }7 L, N) U% T9 y& b5 Z6 G
- 6 _8 I/ H( f9 q* W1 w/ p, L
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
2 u7 H3 m5 T3 J+ C - static void check_value( char *function, int value )
1 @& \# ?! a: G( @% [/ m. {+ Q2 Q - {
$ j; g! |; V! A0 x - if (value == 0)
0 Y6 Y/ U4 l. ~7 x( n" \ - {
" Y7 I+ e' P. w# a4 K - printf ("\t%s is NULL\n", function);! `1 C% S) _2 c8 _
- printf("\nExiting program!\n");
2 C$ J0 [+ @5 H5 h1 X) ^2 e - exit (EXIT_FAILURE); ( u1 x0 w) S. I' l$ t2 t* f
- }4 u! u2 C) `" f7 B! F. B1 e5 T$ q
- }' R4 {; l7 D. x( M2 z9 Z
5 |) y* q# c0 X" {$ |1 {
* q7 Q* F3 o) l- `- static void do_it(void)
6 \* A. v6 @( x* G5 H8 Y6 t! t - {, X' l$ J/ ^6 L' S- Z7 M
- int
7 ]* a1 g4 r3 ] - attach_types[1] = {1};8 Q, X+ C6 J6 G$ M9 I; X/ b
- tag_t
6 \$ A! }" m* f( |) |2 Q - rev = NULLTAG,
0 c* J5 k- K9 r5 m7 ^$ u - process_template = NULLTAG, & I; `: ~4 q @" L0 X
- process = NULLTAG;& e0 g0 N5 w3 M/ L6 z+ d4 ]
) U4 _3 S' ?7 i8 P8 O: t" J- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );0 Z1 q- \" n/ G: D$ k& f
- EXIT_IF_NULL( rev );2 K! G: w0 I+ d) I" c7 ~1 l! d3 A) y
- 4 E; [" M3 v& b& @
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 2 _9 D& H. _- D' y3 B. z& J. s6 w5 |
- EXIT_IF_NULL( process_template );
1 h: c: s: o* k* H+ H9 W
$ ~5 O2 J1 s/ V5 K
7 d4 y1 F1 ~6 ?8 z" T- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 8 W) [) n3 O6 o
- attach_types, &process) );
$ z$ V; W3 D9 g4 l8 ~* T - / {; Y+ W9 m- @ ]
- EXIT_IF_NULL( process );+ r, q! f& g9 {7 K
- }
# v* ^; L+ b2 z- e' R7 a8 v1 H
, n- u8 k1 k _; i4 _- [- int ITK_user_main(int argc, char* argv[])
, ?; u6 l* R, y6 O8 i. W0 Y8 I' S7 n6 C - {, K; u* Q* O/ y+ v6 u
- int- ?% e8 v0 [* m! s n7 X
- status = 0; 6 q1 |- s1 T. B: f/ g+ D0 ^
-
8 q. B) J) a: a4 K4 V( w - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );- f( F1 }( P* c- G+ V3 l7 f9 ^$ n/ C
- status = ITK_auto_login();" S) k9 I4 B* w" f9 J
- # H0 B# s3 M7 b- m; k7 f
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
& Y, ?# [! G3 L6 s - else1 W/ }: ]( l X- C3 F
- {8 m8 B5 @( _: X
- printf("\nLogin successful!\n\n");( k4 j" i# m3 o3 g
- ITK_set_journalling(TRUE);
% c6 ]4 A9 R% r, \* u8 [* l1 i0 \ - do_it();4 C N, a7 @, s: v5 `# ~, i5 |( |
- } x9 K2 e7 Z2 S( X
- ITK_exit_module(TRUE);
; F) U$ E C) e! X - return status;
+ Z: P3 ~0 i5 G* [$ p/ B; b3 K& L6 W - }
复制代码
* J* w; s+ L1 j `/ L# j
" R! w- I6 |$ j- Y3 A5 i' s# @: O# C, e' ], [
|
|