|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
4 P& C" N1 E3 R; j5 `Teamcenter ITK二次开发源码分享: 创建一个工作流
. M8 S* @; ]! H
6 o" j l5 [4 G9 O( r. G; }- /*HEAD CREATE_A_PROCESS CCC ITK */! L) \/ R2 U9 Q4 _/ R3 v' r5 G
- #include <stdlib.h>$ o0 V2 m" B5 w# U F
- #include <TCcore/aom.h>
# W. p- j- @& O/ E - #include <tc/emh.h>
4 W4 F; G/ M: r- N2 N" ]5 c - #include <epm/epm.h>
3 r9 u! w# }* r# z6 h - #include <tc/tc.h>
& M/ q9 n* A0 \. c) i - #include <sa/tcfile.h>
0 t/ }5 L: r2 ~. g: L8 D4 ^! F - #include <itk/mem.h>
1 d, [0 y, K5 E - - N O; v/ ?) t% z. e: {
- #define EXIT_FAILURE 1
1 u i5 i* y8 j, z - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))7 _- n3 F7 x- H6 R9 W9 B, E& H
- static void report_error( char *file, int line, char *function, int return_code)
2 E( E2 U/ Q. F' V( b - {
% P. d1 P2 o0 k - if (return_code != ITK_ok)
/ ~* n% P4 R/ E - {! z! F6 R" Y2 Y: l0 h
- char *error_message_string;
* F8 \# @/ A5 G+ [6 f2 F* L' T* [ - EMH_get_error_string (NULLTAG, return_code, &error_message_string);; A$ k. O4 f7 i! S! g2 C7 G
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
5 k ?3 D X( ^3 M" i7 L - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);' `* F1 L; m2 T1 ]1 @
- if(error_message_string) MEM_free(error_message_string);
5 {- H( P( R% D5 Y: F: Q - printf("\nExiting program!\n");
; p6 N9 F& v# {7 S {1 F - exit (EXIT_FAILURE);
6 F: B2 U6 C g5 a6 H7 v* ^. \ - }
3 p4 p& L# R- o: A4 z4 X( Y& s p - }
, B& C! I! i. a' j/ G4 D! z( b
( ^, B: Y* f$ L6 A% P0 H; R4 J- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
0 {3 {4 {5 h3 U - static void check_value( char *function, int value )6 l' b8 L1 M$ s
- {, B- I3 ]1 o2 F0 N. m- E
- if (value == 0)
& H8 w& `, ]2 X& B5 K - {
8 z; x1 t$ E1 ]% }* N/ F# n: \& P5 a - printf ("\t%s is NULL\n", function);, r8 l3 m" L0 T$ t3 |2 c4 d
- printf("\nExiting program!\n");
/ n4 n3 s7 \: W - exit (EXIT_FAILURE);
# F0 f2 V! Z& P! j - }
( a1 x' ?$ [9 b( d - }
6 L4 @4 r. o) S' y; | - 7 P i9 }0 g7 R; c1 i) B
- / }, i I4 `% c
- static void do_it(void)
6 G6 T( [5 r. p% p5 t0 Z - {, A6 V8 n- n# ?9 L
- int
2 z8 d& ^$ H) [9 x* V - attach_types[1] = {1};7 D; Z5 x- }+ O% S* _& a3 q. p+ s
- tag_t ' i/ R+ ^7 A% w9 n, ]4 g$ s( Z
- rev = NULLTAG, A: F1 t3 r# d) m7 N% a& O P2 P( O
- process_template = NULLTAG, * {! j4 K3 k) }% b. U* V
- process = NULLTAG;2 g( ^8 w h6 c3 ~
- 0 k1 M, ` K) _: ^, ^9 W
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
$ t5 N$ N" W! c - EXIT_IF_NULL( rev ); A+ s, z- i/ P+ n
2 G. N7 N, z6 z1 L- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
- F- }! A+ J6 L0 [! U3 P+ C - EXIT_IF_NULL( process_template );
( D& p6 Q4 K7 p
- t& n5 V k- w7 J1 E8 [- 6 r/ ?/ G7 s4 d! r( Q, a k" g5 A
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
* g$ e6 G6 s l1 h d - attach_types, &process) );
& b4 {9 k0 H. ~3 }' r }
2 O6 H# {/ ]8 t8 D1 | S- EXIT_IF_NULL( process );1 b O z1 M5 p
- }3 U1 S2 j2 Y( o2 |# N4 i, x$ P
- 3 x8 h9 {) h2 z# R4 Q
- int ITK_user_main(int argc, char* argv[])
F- x' F3 v; H3 Y - {5 j& T0 [7 u; C6 a
- int
$ d# S$ \! |: T f: w) ? - status = 0;
) t# A M5 R5 |% R2 q0 X -
& t/ x4 h% H: u$ J5 G" V - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );7 @! Z8 e& ^" ?/ |- B
- status = ITK_auto_login();
8 z' h; M7 }7 J6 L: c - 5 {, J" B& K0 u
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
2 M" O6 A+ _0 A: i! l$ ~, J - else
3 x4 M9 o+ r% z, } - {
9 U8 C: }, Y/ i0 n- J% K1 Y; i - printf("\nLogin successful!\n\n");# q/ t& s: @% Y( \4 B+ x
- ITK_set_journalling(TRUE);! r- I. L7 Y# w. H: E. i g" p
- do_it();8 D1 ~) d z. o0 |) I
- }5 W% K' y; T ^/ H# @: q1 P4 P+ D
- ITK_exit_module(TRUE);$ R2 A( {/ q5 X8 F5 |
- return status;$ |: t! H0 [2 S9 P
- }
复制代码 % q4 J. l( a0 L! s$ M$ X9 I1 y9 W. p
" V, R2 t4 O! u3 \4 b/ L" k& \2 u c3 r4 g0 L7 G1 V
|
|