|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
) f4 G6 ?; e" I. I0 r6 LTeamcenter ITK二次开发源码分享: 创建一个工作流9 @6 X% H. n" |% [! L8 p
" Z9 @2 c' B/ }5 R0 e- C
- /*HEAD CREATE_A_PROCESS CCC ITK */
; z# w- p/ D2 v+ [* F - #include <stdlib.h>
# [) V, L/ N p7 j( e* N; D2 O$ N2 @ - #include <TCcore/aom.h>) y! h& l2 U# j; x+ p1 W% {0 ^
- #include <tc/emh.h>8 l8 q4 W* Y# R5 @/ D
- #include <epm/epm.h>
% k7 {0 g! v* J2 V; j/ h" ? - #include <tc/tc.h>
; L, l- m2 p. U8 v" ~% y - #include <sa/tcfile.h>
+ m! p5 [7 S v - #include <itk/mem.h>
/ v r* i6 P4 E- D, q' i. s* x0 c
! X5 h4 n; `4 }! _5 `5 Z: b- #define EXIT_FAILURE 1
. P; S! s+ Z, s5 t: i9 p - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))6 b8 f2 q8 l1 w2 O, L' x7 T% g& r
- static void report_error( char *file, int line, char *function, int return_code): G3 S8 j; n- y _6 V
- {8 m7 N/ M( Q! n3 v6 B. D* p
- if (return_code != ITK_ok)" |$ S, c2 w3 n
- {
# Y/ E) w) y7 Q X( ^ - char *error_message_string;' Z. V( z. ^0 e4 v$ \8 C' c' j
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);6 ]- o& Z% c; Y X
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
# Q* h. x3 C, v" t4 P, R - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
% N; b' a3 X8 F! I: d R3 F - if(error_message_string) MEM_free(error_message_string);
, w5 k; X# U0 i - printf("\nExiting program!\n");
& D! e! n6 z, U! X - exit (EXIT_FAILURE); z5 J: `3 [0 V+ w, ]! A
- }
, k$ q, `2 K$ | - }- P& i T# L n R0 C) V
2 K3 n/ j6 [+ l; J4 v8 E+ u- #define EXIT_IF_NULL(X) (check_value(#X, (X))), v* [# P$ t. f) s6 k' L* t+ J4 k
- static void check_value( char *function, int value )
) c9 @4 y( T$ u# z) a3 n - {0 H$ o# `4 j) o) ~
- if (value == 0)
9 b1 F' y3 E% X5 m4 K/ ` - {
+ v" _: P) L3 B; }7 g3 }6 T - printf ("\t%s is NULL\n", function);& B# i% |$ I+ K/ f7 k- @3 F+ U
- printf("\nExiting program!\n");
) B/ Q$ q4 ~# v3 t# [ - exit (EXIT_FAILURE); 4 |0 _) O ^$ Z! P3 @+ L
- }1 j7 j6 ~8 `% t9 M5 A& e
- }
+ _2 _6 R( I4 i
) v5 R1 F" P# O- Z( ^; L
3 S1 w9 d( O5 T) N1 G& M5 O- static void do_it(void)) d( t/ v5 G, r. `4 L/ P
- {* w) s4 D( ^' T+ Y, E( `
- int G0 G# Y' Y5 o% t3 `1 E2 E
- attach_types[1] = {1};
/ k1 o( P3 m* X y+ ^) T3 e - tag_t 9 |5 L9 a. B% y4 Q. p7 F
- rev = NULLTAG, ( M/ R' F8 f! E
- process_template = NULLTAG,
3 g% j( D" [$ T - process = NULLTAG;1 ^" p4 @4 l: X& o
- 1 V/ o) ~$ c& ?- k( `
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
1 q4 q# K% e3 F. S' ?' R- \ - EXIT_IF_NULL( rev );/ ~6 b ^3 V6 h7 L# U! b, u- |$ y: x
- C+ a5 c' f' y1 J6 {8 d- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 0 z( _, F( L9 L7 W3 n' u* j
- EXIT_IF_NULL( process_template );
F6 w* M% @: Z" p4 v - 3 s% P: D/ u6 g( C* R2 j
- ( v D6 q7 [( }3 z
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, / z- c0 n% z& |2 O( B
- attach_types, &process) );
+ ^* ?' ~- R( G0 a1 K: P3 M) Q) P$ t
3 V8 k c* ]( t' T- EXIT_IF_NULL( process );
% h; A4 {% W Y, M; H - }
( e7 ~4 H- U9 w3 e - % {* s( s# i9 P- f6 L7 j6 U2 P
- int ITK_user_main(int argc, char* argv[])# |4 R8 G5 \8 a& ?
- {
/ n# n. A, @3 I - int
4 B7 y7 R: }8 @* G - status = 0; ) c7 C4 v. y; s
-
( R7 B9 B0 K5 I - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );) k" U7 Y* Z& }' l ^. W
- status = ITK_auto_login();
5 `# j5 E/ v* J2 L4 p, X - 4 v% w* B( r4 j0 A: j( A; c
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");! E! @( `8 K, E% K5 q a: \3 q( a
- else
$ E0 a/ y; o5 P/ I& E - {
) {* [! ^1 U& ~" `9 m+ U# K1 Q8 N - printf("\nLogin successful!\n\n");% B+ j3 g9 d& F: k$ b. } Q7 z" V
- ITK_set_journalling(TRUE);
I9 F9 ]2 O5 p$ [6 a* `4 j! s7 J4 A - do_it();5 g1 T. ^/ e1 Y! ?
- }0 O) J6 H2 X7 L
- ITK_exit_module(TRUE);
. X4 r& m5 g G" u* R - return status;
1 W7 \0 B9 Z7 j. ^0 J3 @# y- { - }
复制代码
- N8 Q: \! z; Q2 |! j. J
7 A5 u! u$ V G5 Y$ Q) j) ?/ C0 W& P! t( e8 \
|
|