|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
! n# `& d5 a0 l
Teamcenter ITK二次开发源码分享: 创建一个工作流
6 ?, }; N8 G, |7 x" }* S- O
( T- |- Q; L2 W$ V+ @* o( C- /*HEAD CREATE_A_PROCESS CCC ITK */1 o Y; Z$ M* V4 i$ x, _, m
- #include <stdlib.h>) D" b0 r6 ]. t c! C
- #include <TCcore/aom.h>: j! J" j4 @+ A5 y
- #include <tc/emh.h>* f- j2 J4 o3 I/ n/ T/ b/ Y4 y" N- @6 a
- #include <epm/epm.h>8 \" }( H% \, |3 Z
- #include <tc/tc.h>
+ V& \- [+ H3 n. e$ i - #include <sa/tcfile.h>
/ t% z" p7 S! K& _ - #include <itk/mem.h>3 Q7 Y! P8 ^" m4 e- }
- ; F+ |" V1 c2 y6 |
- #define EXIT_FAILURE 1
+ r3 ]* `! l! s3 x+ e: O - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))) J6 F% y* y3 ~7 |, w9 s
- static void report_error( char *file, int line, char *function, int return_code)
2 ]- I! Z7 l s' P7 ^ - {
; F9 s! X( t! S6 x' z V - if (return_code != ITK_ok)
0 ]7 A/ K& c' X8 v% l2 a - {( U) J8 y" A5 Z _# O) A2 |
- char *error_message_string;
/ v, o4 z$ ? \' o# O1 \ - EMH_get_error_string (NULLTAG, return_code, &error_message_string);4 B- ~, n) g& j. j$ v
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
6 I" L9 s5 ?& W! W - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line); L: W% s9 n% ~0 W# z
- if(error_message_string) MEM_free(error_message_string);
+ L! A9 ~. h4 e) w* q - printf("\nExiting program!\n");
) f, g& C p9 }# ?% o# w/ P - exit (EXIT_FAILURE); ! p+ ^% T8 P9 F, s. ^$ ^
- }
& n5 ^1 f3 D1 v1 w' s: [ - }
( ]* Q0 G" i! I# Y1 m& G6 [
& |2 X$ _ U7 ^! [: [/ D8 w! f( L- #define EXIT_IF_NULL(X) (check_value(#X, (X)))2 h8 H! T. P S6 N" E% v, o
- static void check_value( char *function, int value ): \* T9 C/ a. E$ R4 Z
- {
' f0 Q1 x: k9 d! a* K - if (value == 0)7 _* ^8 B* r1 x9 _9 K
- {
. U7 W. z3 T9 c/ y F& c. ]5 Q - printf ("\t%s is NULL\n", function);* v, V1 P ~, E* X1 Q3 f, q
- printf("\nExiting program!\n");
; G( @- ?8 |" B3 g# h/ ~ - exit (EXIT_FAILURE);
, D% F- X F5 R% V - }
5 m+ b* }1 T/ W - }' ~3 f8 x0 _6 v/ C/ t. _9 l2 M$ g1 y
- " ^0 {3 B7 {9 I" R- A1 {& `; }
E; c* j) Y$ `! u' G7 B) H5 V- static void do_it(void)
" ~6 ~" G+ }( c4 r" g" J - {
$ M; v) H& C- v! R - int _5 Z$ C# k3 D8 R# _: G! J+ @2 H
- attach_types[1] = {1};
1 O! ]: ]% d8 W) d; F - tag_t . u ?5 ^3 v6 k$ s& _, E$ J3 d
- rev = NULLTAG, / t4 |* G/ A0 k, Q# p; N7 w
- process_template = NULLTAG, ; S2 b' k$ G v# r. i
- process = NULLTAG;" K& b9 ^% W/ r* D/ S/ [7 E! O
- 0 c" r; C5 n6 A: k- g- i9 J" F2 |
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
; m* d$ ?- W, S8 S - EXIT_IF_NULL( rev );
! B" L6 G$ N9 X! c! p5 n
' N! w! Y9 G! y# m0 v7 z0 {) L% Q( O- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 7 ~8 C# X: c7 l
- EXIT_IF_NULL( process_template );
- @( B5 W3 Z# d; N, t( r - ' Y/ D/ \: P2 @7 N+ h1 o
- 4 h: O& w. i1 C% z: ^, E/ c6 k7 Q
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
" z. C$ b) ]! ]2 V5 z4 p - attach_types, &process) );2 e- A' x/ g# c; E7 O3 b
# l X O* a9 s% a, k- EXIT_IF_NULL( process );
7 b9 V D5 V9 r4 x - }' |9 }- f8 V7 g
4 _6 p" e2 x# Q1 t# `6 v* e- int ITK_user_main(int argc, char* argv[])3 [ U+ J$ q) _; j4 R
- {
( a4 t: @; l) p: h' d3 B7 s- [+ X - int
8 Q! Y# u* ~- W - status = 0;
$ h) Y+ n2 r; U' g( { t2 ]" { -
+ ^0 ~! V2 E0 {0 S! R+ h8 Y' u - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
: g0 ?, W' U- I6 Q P- |9 _2 O/ p# k - status = ITK_auto_login();
' I0 k; J1 p4 Y - 3 v) Z* E( g3 ^% P3 e+ C) G8 w
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");/ {! M6 m+ e2 h" g0 [% r
- else G/ |" u5 W! ], l
- {
) X2 I! S1 h8 o - printf("\nLogin successful!\n\n");
! }* H! A+ v! h( `2 }5 y - ITK_set_journalling(TRUE); r5 I7 w% r% b% A3 c: n
- do_it();) t9 s$ u1 m* X( J) o9 Z
- }4 X. ~ r. d* m! i2 ?
- ITK_exit_module(TRUE);4 ?( P3 A. u( ?
- return status;
( p3 t& z# t/ x* b+ }& D: ^ - }
复制代码
, @% A! Y* s4 K1 q
% c, w8 J, ]# ?( H7 }) u. _. Z3 d5 H$ G+ \9 G3 M
|
|