|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
4 d% K: j. ?+ I4 Y5 Y6 I \8 [/ L4 ]$ b
Teamcenter ITK二次开发源码分享: 创建一个工作流6 Z! ?+ y. A$ g6 g/ ~
/ c l) N. f1 _3 S- /*HEAD CREATE_A_PROCESS CCC ITK */" x9 w1 c8 S) U" M3 Y' K3 k
- #include <stdlib.h>5 l( g; T( r, H/ {" N( D. ~
- #include <TCcore/aom.h>
- U7 h5 x7 I3 m4 c6 F - #include <tc/emh.h>
3 `+ M6 [" S h: ]+ v2 y6 ?+ S - #include <epm/epm.h>+ M% _: K3 f4 q
- #include <tc/tc.h>" r9 I2 o5 ?* y, @, E" T+ l
- #include <sa/tcfile.h>9 S1 x/ s7 E% p; Y# A' `+ r
- #include <itk/mem.h>
! `+ _! J6 l0 _( F, J, w
: u) |4 P6 y8 x# _* ?- #define EXIT_FAILURE 1
4 G& l W& H/ V& u( J0 D% e! @* } - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
) F* W6 m2 K# ?- U, @ - static void report_error( char *file, int line, char *function, int return_code)
5 N9 J' v. @0 O! T! D- ^- h4 N - {
9 M/ P) w! S% {- i2 | - if (return_code != ITK_ok)& F. Q' n4 B5 D1 c9 [6 G) x
- {: O4 ^2 g$ b, ]& |
- char *error_message_string;# V1 W1 k8 \1 _, A) _: Z' {& y
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
9 Q% o) \- ], S# i; d8 h: G! t - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
7 J% S- K2 L+ s4 n# V, j; | - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
: M9 J" N0 B3 H" w7 } - if(error_message_string) MEM_free(error_message_string);9 E9 D/ g3 Z/ o5 b' g( @. U7 T
- printf("\nExiting program!\n");2 W7 Y; |, @# f5 ^1 o: y8 d, u; l
- exit (EXIT_FAILURE); + o% u7 S. q( B ^; _# e( `
- }0 `; F: t2 o8 b( |* K: V0 [
- }% t2 v& u, ]9 x, Y
- * _5 ^/ q4 ^; K8 s9 Z
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))8 D# h! Y& P0 y5 N6 {
- static void check_value( char *function, int value )# Y4 y7 M; x) S0 U' X: ^0 ?+ o
- {& L# ~1 I" N+ @9 o
- if (value == 0): Q6 r" M% v% i1 j
- {; M S' @; X, ~' x2 t- }7 g
- printf ("\t%s is NULL\n", function);
3 \7 Q( }+ t" l; A" K - printf("\nExiting program!\n");
8 `4 ^" |: u" d6 W - exit (EXIT_FAILURE);
; k' {9 E6 ~+ D7 y( Y: ^& n. F - }
+ u# b" p2 W. e/ F1 |1 p3 O - }
, n: H7 d; w0 v$ p+ r - ' N% H5 C5 |! |3 l0 W3 @1 u
5 o @( n2 s6 {# @& w( F, F- static void do_it(void)6 Z6 f, y( q; Z% j4 ?- Z- c
- {
6 e V' _0 r+ P/ r- b+ X7 o - int 6 L( K9 ], `+ z' f& p F# n! Z
- attach_types[1] = {1};
' X" C w% L$ Z5 x- O" ] - tag_t
8 a+ ]7 v8 ~% f$ G - rev = NULLTAG,
+ {# h$ `! c3 ]0 E# z8 h - process_template = NULLTAG,
) J; ~' W' F7 K8 [% C* G - process = NULLTAG;9 S. g! h8 j" \8 S- `& ^4 B. U: Q: u
- 3 d$ R6 w1 `; J+ W# B& u
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
; i, z f1 l* q* r' ?. t - EXIT_IF_NULL( rev );
$ {1 r; K0 ^! K! p1 i: d - " L- o' m9 P* A( u0 o' g
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
7 @6 Z! C! i8 ` R/ R/ t - EXIT_IF_NULL( process_template );
. H$ t0 F, I; Y- e* L
3 ]# K- y6 S: U# f7 C# }- , t% A5 i! F( V# c1 j. f
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
& i& ~+ ?( M0 T4 f8 a( F - attach_types, &process) );: B) P( R4 T/ K6 p4 S& q
2 G2 M5 F) Y% t! P0 ~0 x- EXIT_IF_NULL( process );0 U0 h' H: e" C& r3 }/ M8 R' |/ }) E( P
- }# W) d4 [ d6 g+ o: ~& I a0 ^
+ s7 ~* `- F9 T% [* q3 A0 g2 o- int ITK_user_main(int argc, char* argv[])
; f! x2 `2 x0 b - {/ @! ~* r( S* `' d; s4 k
- int! `) Y- V a! e
- status = 0;
, M/ `) j, \/ j& a9 ?( K s - & i x! Q$ U# I. Y
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );$ d% \. a8 o. m) t5 O
- status = ITK_auto_login();
' p# ]; x' }% } -
: d7 o1 R3 X0 X7 v- F9 P - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
- Y; K# z* M7 P& r7 k: k, {$ R+ Y - else
9 |+ \7 _& H# O4 Z# J - {
, T6 y6 F# t& J2 ?+ R - printf("\nLogin successful!\n\n");
# |6 J* v! U# J1 J/ h - ITK_set_journalling(TRUE);
. N) }6 |; s9 V; x& C& e' I4 t) b: T - do_it();3 A2 r5 `! M ^" A+ R% O1 h% z" K
- }
+ s2 I$ ?, }5 }( ]3 R6 P+ b - ITK_exit_module(TRUE);* G( I2 ]5 y5 e
- return status;
/ _, D. E6 z" j) s - }
复制代码
5 ]8 Z5 c( \ H+ \. Z$ u( x5 E% z$ u$ o$ N
6 X2 v! V/ J- @( g) ] |
|